gpt4 book ai didi

安卓 : click link in a page within web view

转载 作者:太空宇宙 更新时间:2023-11-03 10:29:57 26 4
gpt4 key购买 nike

我在 android web view 中包含了一个 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,感谢您的回复,

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

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

我在网上冲浪,发现了类似的问题,但这也没有帮助,这是链接:

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

handling links in a webview ,

任何帮助和想法都会对我很有帮助,这对我来说太长了,

因为我试图在 WebView 中显示我的网络应用程序,所以我只有一个 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比如错误号 15827、9122、812、2887

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

关于安卓 : click link in a page within web view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7524990/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com