Android - 如何在单击WebView中的URL时从当前片段活动中打开片段?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (53)

请回答这个问题。

我有一个带有web-view的片段活动,我想在点击特定网址时打开或重定向到另一个片段。

注意如果选择了除required之外的任何其他url,它应该在相同的当前片段中打开。

提问于
用户回答回答于

在on-create中你给webview的代码添加了这个(最好在oncreate方法的末尾添加)

webView.setWebViewClient(new MyWebViewClient());

然后在oncreate之外进行如下函数调用

private class MyWebViewClient extends WebViewClient {

   @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        if (url.equals("your url here")) {
            Fragment newFragment = YourNewFrag();
            // consider using Java coding conventions (upper first char class names!!!)
            FragmentTransaction transaction = getFragmentManager().beginTransaction();

            // Replace whatever is in the fragment_container(usually a frame layout) view with this fragment,
            // and add the transaction to the back stack
            transaction.replace(R.id.fragment_container, newFragment);
            transaction.addToBackStack(null);

            // Commit the transaction
            transaction.commit();
            return true;
        }
        return false;
    }
}
用户回答回答于

您应该覆盖网址加载。使用如下内容:

webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    if (url.startsWith("your_url")) { //you can also use indexOf, equales etc. 
        // do what's needed
        return true;
    }
    return false;
}

});

扫码关注云+社区

领取腾讯云代金券