Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ShouldStartLoadWithRequestforAndroid上响应本机Web视图_Android_React Native_Android Webview - Fatal编程技术网

在ShouldStartLoadWithRequestforAndroid上响应本机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

我试图实现的基本上是android web view的shouldOverrideUrlLoading。我正在将一个特定的URL加载到web视图中,而web视图又有一系列重定向。目标是截取最后一个URL,并由应用程序而不是WebView组件处理它。似乎ios平台也有类似的功能(onShouldStartLoadWithRequest),但android平台还没有()

我尝试的解决方法是使用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


如有任何建议,将不胜感激

我希望你能找到解决问题的办法。。。我也有同样的问题,做了很多研究,发表了一篇大文章,也许这会对你有所帮助:我用这样的方式做过,但这不是最好的方式。最好的方法是在android上实现onShouldOverrideUrlLoading,但由于某些原因,这似乎是不可能的…对于任何想知道的人来说,现在支持这种跨平台