我正在制作本机应用程序和一个屏幕,为此我使用了webview,并且我想一次处理onNavigationStateChange道具,现在它正在多次调用,所以任何想法我都可以解决这个问题。请参阅下面的代码
<WebView
ref={r => this.webview = r}
style={{width:globals.screenWidth, height:globals.screenHeight}}
bounces={false}
style={{ flex: 1 }}
startInLoadingState
scalesPageToFit
javaScriptEnabledAndroid={true}
javaScriptEnabled={true}
domStorageEnabled = {true}
onNavigationStateChange={data =>
this.handleNavigationStateChange(data)
}
onLoadStart={() => {
console.log("onLoadStart-->");
}}
onLoadEnd={() => {
console.log("onLoadEnd-->");
}}
source={{uri: globals.MYURL}}
onError={(error) => this.onError()}
/>
handleNavigationStateChange = navState => {
console.log("navState >>>>" + JSON.stringify(navState));
};
当我在上面的代码navState >>>>上运行3次时,我想处理1次,那么如何解决此问题?您的所有建议都是可以的。
答案 0 :(得分:0)
我遇到了同样的问题,但是我将手柄移到了onLoadEnd
_onLoadEndHandle = (input) => {
console.log(input.nativeEvent)
if (input.nativeEvent.url.toLowerCase().includes('?type=print')) {
console.log('printing...')
this._print() // Calling printing function
}
}
希望这会对您有所帮助。