【问题标题】:i have a webview app and facing that when i click on Hyperlink then it open in default browse我有一个 webview 应用程序,当我点击超链接时,它会在默认浏览器中打开
【发布时间】:2016-02-07 07:48:06
【问题描述】:

我有一个 webview 应用程序并面临一个问题 当我点击超链接时,它会在默认浏览器中打开。

但我想在同一个网页视图中打开该链接。 如何在同一个 webview 中打开它。

这是我的代码。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView myWebView = (WebView) findViewById(R.id.myWebView);
    myWebView.loadUrl("file:///android_asset/abc/index.html");
    myWebView.setWebViewClient(new MyWebViewClient());
    WebSettings webSettings = myWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
}

private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (Uri.parse(url).getHost().equals("file:///android_asset/abc/index.html")) {
            return false;
        }

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        startActivity(intent);
        return true;
    }
}

【问题讨论】:

  • 只需从shouldOverrideUrlLoading() 方法中无条件地返回false,并删除那里的所有其他内容。如果这就是你所需要的,你甚至不需要子类WebViewClientmyWebView.setWebViewClient(new WebViewClient());

标签: android webview


【解决方案1】:

照着做,

myWebView.setWebViewClient(new WebViewClient() { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return false; 
    } 
}); 

在所有情况下都返回false

【讨论】:

  • 不用打view.loadUrl(url);
【解决方案2】:

好的..您还添加了一个 WebViewClient..

那就这样试试吧……

myWebView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return false;
    }
});

这应该对你有用..

【讨论】:

  • 不用打view.loadUrl(url);
猜你喜欢
  • 2011-05-12
  • 1970-01-01
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多