gpt4 book ai didi

java - WebView 打开网站中的链接

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:01 34 4
gpt4 key购买 nike

我正在尝试制作一个 Android 应用程序来使用 WebView 加载网站,但问题是在网站中我有不同的链接。问题是我想在外部浏览器中打开一些链接,并在同一窗口中打开一些链接。

例如,如果链接以“.html”结尾,则在同一窗口中打开,而其他链接则在外部窗口中打开。我应该在以下代码的 else 分支中插入什么?

public class MainActivity extends AppCompatActivity {
private WebView myWebView;
String url = "url";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = (WebView) findViewById(R.id.web1);
// Configure related browser settings
myWebView.getSettings().setLoadsImagesAutomatically(true);
myWebView.getSettings().setJavaScriptEnabled(true);
myWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
// Configure the client to use when opening URLs
// Load the initial URL
myWebView.loadUrl("url");
myWebView.setWebViewClient(new WebViewClient() {
// Api < 24
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null && url.endsWith(".html")) {
view.loadUrl(url);
return true;
} else {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
}
});
}

}

最佳答案

此方法在 API 级别 24 中已弃用。

boolean shouldOverrideUrlLoading (WebView view, String url)

对于 Api > 24 可以使用

boolean shouldOverrideUrlLoading (WebView view,WebResourceRequest request)

这是在应用程序中使用这两种方法的示例

    webView.setWebViewClient(new WebViewClient(){
// Api < 24
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null && url.endsWith(".html")) {
view.loadUrl(url);
return true;
} else {
startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse(url)));
return true;
}
}
// Api > 24
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
if (request.getUrl().toString() != null && request.getUrl().toString().endsWith(".html")) {
view.loadUrl(request.getUrl().toString());
return true;
} else {
startActivity(new Intent(Intent.ACTION_VIEW,request.getUrl()));
return true;
}
}
});
webView.loadUrl("https://google.com");

关于java - WebView 打开网站中的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48287553/

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