我想要实现的目标基本上就像android网络视图&shouldOverrideUrlLoading。我正在将特定网址加载到网页视图中,而网页视图又有一系列重定向。目标是截取最后一个URL并由应用程序而不是WebView组件处理它。似乎类似的东西可用于ios平台(onShouldStartLoadWithRequest),但还没有到达android(https://github.com/facebook/react-native/pull/6478)。
我尝试过的解决方法是使用onNavigationStateChange,解析URL并在需要时停止加载Web视图:
onNavigationStateChange = (navState) => {
const url = new URL(navState.url);
const lastSegment = url.pathname.substr(url.pathname.lastIndexOf('/') + 1);
// Handle the get token ourselvs
if (lastSegment === GETTOKEN) {
this.refs[WEBVIEW_REF].stopLoading();
this.getToken()
}
this.setState({
url: navState.url,
backButtonEnabled: navState.canGoBack
});
}
问题是stopLoading函数在我的情况下并没有真正起作用。我看到在执行异步函数getToken()时,浏览器继续加载最后一个URL。
任何建议都将不胜感激。