【问题标题】:WebView clicks opens mobile browserWebView 点击打开手机浏览器
【发布时间】:2011-08-31 21:02:24
【问题描述】:

有一个 WebView 加载移动优化 URL(网页)。但是当我点击一个链接时,它不会加载到WebView 内(在应用程序内),但会打开移动浏览器。

如何预防?

我尝试通过 shouldOverrideUrlLoading() 重载 URL,但没有帮助。

这是一个代码。

webView = (WebView) findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
webSettings.setPluginsEnabled(true);
if (Build.VERSION.SDK_INT > 7) {
    webSettings.setPluginState(WebSettings.PluginState.ON);
}
webSettings.setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url.equals(url)) {
            view.loadUrl(url);
            return true;
        }
        return false;
    }


    @Override
    public void onLoadResource(WebView view, String url) {
    }
});
webView.loadUrl("http://some-url.com");

编辑

GETPOST 发帖方法是否有链接点击打开移动网络浏览器的任何内容???

【问题讨论】:

  • 对不起有真实的,但我没有复制它!
  • 这段代码if (url.equals(url)) {view.loadUrl(url); return true;}好看吗?

标签: android overloading android-webview


【解决方案1】:

shouldOverrideUrlLoading 中返回true 而不是false

来自文档:

shouldOverrideUrlLoading 如果宿主应用程序想要返回 True 离开当前的 WebView 并自己处理 url,否则返回 假的。

【讨论】:

  • 对不起有真实的,但我没有复制它!
  • url.equals(url) 实际上并没有做任何事情。它们是同一个对象,所以它们当然是平等的。为什么不直接使用@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; }
猜你喜欢
  • 2011-05-12
  • 2018-10-04
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多