在ShouldStartLoadWithRequestforAndroid上响应本机Web视图
我试图实现的基本上是android web view的shouldOverrideUrlLoading。我正在将一个特定的URL加载到web视图中,而web视图又有一系列重定向。目标是截取最后一个URL,并由应用程序而不是WebView组件处理它。似乎ios平台也有类似的功能(onShouldStartLoadWithRequest),但android平台还没有() 我尝试的解决方法是使用onNavigationStateChange,解析URL并在需要时停止web视图加载:在ShouldStartLoadWithRequestforAndroid上响应本机Web视图,android,react-native,android-webview,Android,React Native,Android Webview,我试图实现的基本上是android web view的shouldOverrideUrlLoading。我正在将一个特定的URL加载到web视图中,而web视图又有一系列重定向。目标是截取最后一个URL,并由应用程序而不是WebView组件处理它。似乎ios平台也有类似的功能(onShouldStartLoadWithRequest),但android平台还没有() 我尝试的解决方法是使用onNavigationStateChange,解析URL并在需要时停止web视图加载: onNavig
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
如有任何建议,将不胜感激 我希望你能找到解决问题的办法。。。我也有同样的问题,做了很多研究,发表了一篇大文章,也许这会对你有所帮助:我用这样的方式做过,但这不是最好的方式。最好的方法是在android上实现onShouldOverrideUrlLoading,但由于某些原因,这似乎是不可能的…对于任何想知道的人来说,现在支持这种跨平台