Android:单击网页视图中页面中的链接

2023-12-21

我在android web视图中包含了一个web应用程序,并且网页中有一个链接可以打开其他网站,当单击该链接时,第一次单击可以正常工作,但是当第二次单击时,找不到该网站,

代码是:

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

    if (url.contains("some site ")) {
     Intent i = new
         Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
     startActivity(i);
         return true;
    } else {
    view.loadUrl(url);
    return false;
   }
}

@THelper 和 @mikegr,感谢您的回复,

实际上,就我而言,我的网络应用程序中有一个模式面板(JSF),其中包含一些按钮,单击按钮时,我使用 javascript window.open() 方法打开其他一些网站,该方法在桌面浏览器中运行良好,但是,当我将此 Web 应用程序包装在 Android WebView 中,一切正常,除了当我第一次单击此按钮时,我可以使用外部浏览器打开其他网站,但是第二次单击时,WebView 会尝试在 WebView 中打开此其他网站,而不是外部浏览器浏览器和我发现网站未找到另一个网站的完整 URL,即使我注销并再次登录,因为启动的应用程序仍在运行,也会发生这种情况。

在我的情况下,当应用程序空闲一段时间后,我会得到黑屏。

我上网浏览并发现了类似的问题,但这也没有帮助,这是链接:

http://groups.google.com/group/android-for-beginners/browse_thread/thread/42431dd1ca4a9d98 http://groups.google.com/group/android-for-beginners/browse_thread/thread/42431dd1ca4a9d98

处理网络视图中的链接 https://stackoverflow.com/questions/4788461/handling-links-in-a-webview ,

任何帮助和想法都会对我非常有帮助,这对我来说花了太长时间,

由于我试图在 Web 视图中显示我的 Web 应用程序,因此我只有一个 Activity,其中包含如下代码

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

if (savedInstanceState != null) {
        // so that when launcher is clicked while the application is 
           // running , the application doesn't start from the begnining
} else {

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);

    // Show the ProgressDialog on this thread
        this.progressDialog = ProgressDialog.show(this, "Pleas Wait..", "Loading", true);

    browser = (WebView) findViewById(R.id.webview);
    browser.getSettings().setJavaScriptEnabled(true);

    browser.setWebViewClient(new WebViewClient() {

        public void onPageFinished(WebView view, String url) {
                Log.i(TAG, "Finished loading URL: " +url);

                if (progressDialog.isShowing()) {
                    progressDialog .dismiss();
                }
            }


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

if (url.contains("some site")) {
     Intent i = new
     Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
     startActivity(i);
             return true;
} else {
        view.loadUrl(url);
    return true;
}
 }
});
browser.loadUrl("mysite");
}
}

我有过在某些情况下不调用 shouldOverrideUrlLoading() 的经验。 关于这个主题有一些错误http://code.google.com/p/android/issues http://code.google.com/p/android/issues例如错误号 15827、9122、812、2887

作为解决方法,请尝试添加方法 onPageStarted() 并检查是否收到此调用。对我来说,即使之前没有调用过 shouldOverrideUrlLoading() ,这个方法也会被调用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:单击网页视图中页面中的链接 的相关文章

随机推荐