Ron*_*Ron 24 android android-webview webviewclient
我建立一个WebView显示网站.该网站包含没有target="_blank"属性的链接和一些带有它的链接.
我需要打开target外部标准设备浏览器中定义的链接和WebView中没有它的链接.
我正在使用一个WebViewClient,我尝试了这个功能,但我的所有链接仍在以下内容中打开WebView:
备选方案1:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return super.shouldOverrideUrlLoading(view, url);
}
Run Code Online (Sandbox Code Playgroud)
备选方案2:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
Run Code Online (Sandbox Code Playgroud)
有人知道如何在外部打开空白链接吗?
谢谢!
PS:为了避免误解:我不能使用这种方法,因为我知道链接的唯一方法应该是外部打开target属性.
Car*_* Ip 48
在访问上述链接后,我想出了这段代码,希望这会有所帮助.
wv.getSettings().setSupportMultipleWindows(true);
wv.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture, android.os.Message resultMsg)
{
WebView.HitTestResult result = view.getHitTestResult();
String data = result.getExtra();
Context context = view.getContext();
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(data));
context.startActivity(browserIntent);
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
小智 5
我遇到了同样的问题。我想在应用程序中打开网站页面,其余所有页面都应在“默认浏览器”中打开。我使用了一种技术。如果URL包含我的网站名称,那么我将在WebView中打开它,并保留所有在“默认”浏览器中打开的网站。
查找以下代码,希望对所有遇到此类问题的人都有用。
private class MyBrowser extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.contains("/internetgeeks")) {
browser.loadUrl(url);
return false;
} else {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(url));
startActivity(intent);
return true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28216 次 |
| 最近记录: |