为Android安装本机WebView onShouldStartLoadWithRequest

时间:2017-03-13 14:32:42

标签: android react-native android-webview

我想要实现的目标基本上就像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。

任何建议都将不胜感激。

0 个答案:

没有答案