【React Native】文件翻譯閱讀紀錄 - Components(組件) - WebView
Facebook Open Source React Native |
WebView
WebView 以本機視圖呈現 Web 內容。
import React, { Component } from 'react';
import { WebView } from 'react-native';
class MyWeb extends Component {
render() {
return (
<WebView
source={{uri: 'https://github.com/facebook/react-native'}}
style={{marginTop: 20}}
/>
);
}
}
您可以使用此組件在Web視圖的歷史記錄中來回導航,並為Web內容配置各種屬性。
安全警告:目前,onMessage 和 postMessage 不允許指定原點。如果在 WebView 實例中加載了意外文檔,這可能會導致跨站點腳本攻擊。有關此安全問題的更多詳細信息,請參閱 Window.postMessage() 的MDN文檔。
Props
source
automaticallyAdjustContentInsets
injectJavaScript
injectedJavaScript
mediaPlaybackRequiresUserAction
nativeConfig
onError
onLoad
onLoadEnd
onLoadStart
onMessage
onNavigationStateChange
originWhitelist
renderError
renderLoading
scalesPageToFit
initialScale
onShouldStartLoadWithRequest
startInLoadingState
style
decelerationRate
domStorageEnabled
javaScriptEnabled
mixedContentMode
thirdPartyCookiesEnabled
userAgent
allowsInlineMediaPlayback
bounces
contentInset
dataDetectorTypes
scrollEnabled
geolocationEnabled
allowUniversalAccessFromFileURLs
url
html
Methods
參考
Props
source
在WebView中加載靜態html或uri(帶有可選標頭)。
TYPE | REQUIRED |
---|---|
object: {uri: string,method: string,headers: object,body: string}, ,object: {html: string,baseUrl: string}, ,number | No |
automaticallyAdjustContentInsets
控制是否調整位於導航欄,選項卡欄或工具欄後面的Web視圖的內容插入。默認值是true。
TYPE | REQUIRED |
---|---|
bool | No |
injectJavaScript
接受將傳遞給WebView並立即作為JavaScript執行的字符串的函數。
TYPE | REQUIRED |
---|---|
function | No |
injectedJavaScript
設置此項以提供將在加載視圖時注入網頁的JavaScript。
TYPE | REQUIRED |
---|---|
string | No |
mediaPlaybackRequiresUserAction
確定HTML5音頻和視頻是否要求用戶在開始播放之前點擊它們的布爾值。默認值是true。
TYPE | REQUIRED |
---|---|
bool | No |
nativeConfig
覆蓋用於呈現WebView的本機組件。啟用自定義本機WebView,它使用與原始WebView相同的JavaScript。
TYPE | REQUIRED |
---|---|
object: {component: any,props: object,viewManager: object} | No |
onError
WebView加載失敗時調用的函數。
TYPE | REQUIRED |
---|---|
function | No |
onLoad
WebView加載完成後調用的函數。
TYPE | REQUIRED |
---|---|
function | No |
onLoadEnd
WebView 加載成功或失敗時調用的函數。
TYPE | REQUIRED |
---|---|
function | No |
onLoadStart
WebView 開始加載時調用的函數。
TYPE | REQUIRED |
---|---|
function | No |
onMessage
webview 調用 window.postMessage 時調用的函數。設置此屬性會將 postMessage 全局注入到您的 webview 中,但仍會調用 postMessage 的預先存在的值。
window.postMessage 接受一個參數 data,它將在事件對象 event.nativeEvent.data 上可用。數據必須是字符串。
window.postMessage 接受一個參數 data,它將在事件對象 event.nativeEvent.data 上可用。數據必須是字符串。
TYPE | REQUIRED |
---|---|
function | No |
onNavigationStateChange
WebView 加載開始或結束時調用的函數。
TYPE | REQUIRED |
---|---|
function | No |
originWhitelist
允許導航到的原始字符串列表。字符串允許使用通配符並僅與原點(而不是完整的URL)匹配。如果用戶點擊導航到新頁面但新頁面不在此白名單中,則URL將由OS處理。默認的白名單來源是“http://”和“https://”。
TYPE | REQUIRED |
---|---|
array of strings | No |
renderError
返回視圖以顯示是否存在錯誤的函數。
TYPE | REQUIRED |
---|---|
function | No |
renderLoading
返回加載指示符的函數。必須將startInLoadingState prop設置為true才能使用此prop。
TYPE | REQUIRED |
---|---|
function | No |
scalesPageToFit
布爾值,控制是否縮放Web內容以適合視圖,並使用戶能夠更改比例。默認值是true。
TYPE | REQUIRED |
---|---|
bool | No |
initialScale
控制視圖的初始比例百分比的數字。 50是50%,100是100%等。僅在Android中使用。
TYPE | REQUIRED | PLATFORM |
---|---|---|
number | No | Android |
onShouldStartLoadWithRequest
允許自定義處理任何Web視圖請求的功能。從函數返回true以繼續加載請求,返回false以停止加載。
TYPE | REQUIRED | PLATFORM |
---|---|---|
function | No | iOS |
startInLoadingState
布爾值,強制WebView在第一次加載時顯示加載視圖。必須將此prop設置為true才能使renderLoading prop工作。
TYPE | REQUIRED |
---|---|
bool | No |
style
要應用於WebView的樣式。
TYPE | REQUIRED |
---|---|
View.style | No |
decelerationRate
一個浮點數,用於確定用戶抬起手指後滾動視圖的減速速度。您還可以使用分別與UIScrollViewDecelerationRateNormal和UIScrollViewDecelerationRateFast的基礎iOS設置匹配的字符串快捷方式“normal”和“fast”:
- 正常:0.998
- 快速:0.99(iOS網頁視圖的默認設置)
TYPE | REQUIRED | PLATFORM |
---|---|---|
ScrollView.propTypes.decelerationRate | No | iOS |
domStorageEnabled
用於控制是否啟用DOM存儲的布爾值。僅在Android中使用。
TYPE | REQUIRED | PLATFORM |
---|---|---|
bool | No | Android |
javaScriptEnabled
用於在WebView中啟用JavaScript的布爾值。僅在Android上使用,因為默認情況下在iOS上啟用了JavaScript。默認值是true。
TYPE | REQUIRED | PLATFORM |
---|---|---|
bool | No | Android |
mixedContentMode
指定混合內容模式。即WebView將允許安全的來源加載來自任何其他來源的內容。
mixedContentMode 的可能值為:
mixedContentMode 的可能值為:
'never'
(default) - WebView不允許安全來源從不安全的來源加載內容。'always'
- WebView將允許安全的來源加載來自任何其他來源的內容,即使該來源不安全。'compatibility'
-- WebView將嘗試與混合內容相關的現代Web瀏覽器方法兼容。
- TYPE所需的平台
TYPE | REQUIRED | PLATFORM |
---|---|---|
enum('never', 'always', 'compatibility') | No | Android |
thirdPartyCookiesEnabled
用於在WebView中啟用第三方cookie的布爾值。僅在Android Lollipop及更高版本上使用,因為默認情況下在Android Kitkat及以下和iOS上啟用第三方Cookie。默認值是true。
TYPE | REQUIRED | PLATFORM |
---|---|---|
bool | No | Android |
userAgent
設置WebView的用戶代理。
TYPE | REQUIRED | PLATFORM |
---|---|---|
string | No | Android |
allowsInlineMediaPlayback
確定HTML5視頻是否內聯播放或使用本機全屏控制器的布爾值。默認值為false。
注意:為了使視頻內聯播放,不僅需要將此屬性設置為true,而且HTML文檔中的視頻元素還必須包含webkit-playsinline屬性。
注意:為了使視頻內聯播放,不僅需要將此屬性設置為true,而且HTML文檔中的視頻元素還必須包含webkit-playsinline屬性。
TYPE | REQUIRED | PLATFORM |
---|---|---|
bool | No | iOS |
bounces
布爾值,用於確定Web視圖在到達內容邊緣時是否彈回。默認值是true。
TYPE | REQUIRED | PLATFORM |
---|---|---|
bool | No | iOS |
contentInset
Web視圖內容從滾動視圖的邊緣插入的量。默認為{top:0,left:0,bottom:0,right:0}。
TYPE | REQUIRED | PLATFORM |
---|---|---|
object: {top: number, left: number, bottom: number, right: number} | No | iOS |
dataDetectorTypes
確定在Web視圖的內容中轉換為可單擊URL的數據類型。默認情況下,僅檢測到電話號碼。
您可以提供一種類型或多種類型的數組。
dataDetectorTypes的可能值為:
您可以提供一種類型或多種類型的數組。
dataDetectorTypes的可能值為:
'phoneNumber'
'link'
'address'
'calendarEvent'
'none'
'all'
TYPE | REQUIRED | PLATFORM |
---|---|---|
enum('phoneNumber', 'link', 'address', 'calendarEvent', 'none', 'all'), ,array of enum('phoneNumber', 'link', 'address', 'calendarEvent', 'none', 'all') | No | iOS |
scrollEnabled
布爾值,確定是否在WebView中啟用滾動。默認值是true。
TYPE | REQUIRED | PLATFORM |
---|---|---|
bool | No | iOS |
geolocationEnabled
設置是否在WebView中啟用了Geolocation。默認值為false。僅在Android中使用。
TYPE | REQUIRED | PLATFORM |
---|---|---|
bool | No | Android |
allowUniversalAccessFromFileURLs
Boolean,用於設置是否允許在文件方案URL的上下文中運行的JavaScript訪問來自任何源的內容。包括訪問其他文件方案URL中的內容。默認值為false。
TYPE | REQUIRED | PLATFORM |
---|---|---|
bool | No | Android |
url
已過時. 請改用
source
TYPE | REQUIRED |
---|---|
string | No |
html
已過時. 請改用
source
TYPE | REQUIRED |
---|---|
string | No |
Methods
extraNativeComponentConfig()
static extraNativeComponentConfig()
goForward()
goForward();
在Web視圖的歷史記錄中前進一頁。
goBack()
goBack();
返回Web視圖歷史記錄中的一頁。
reload()
reload();
重新加載當前頁面。
stopLoading()
stopLoading();
停止加載當前頁面。
0 意見