Android WebView添加更多URL参数值



如果链接是外部的,我将使用以下代码打开默认浏览器。但到目前为止,我只能添加两个域(或名称(。如何添加更多?如果链接包含单词";facebook";它将打开应用程序的外部。我想在里面添加更多的名字/doamins。

if (url.contains("facebook") || url.contains("flipkart")) {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
webView.goBack()
return true
} else {
view?.loadUrl(url)
}

已尝试

if (url.contains("facebook,youtube") || url.contains("flipkart")) {

if (url.contains("facebook","youtube") || url.contains("flipkart")) {

我得到的唯一工作方法是,有更好的选择吗?

if (url.contains("facebook") || url.contains("flipkart") || url.contains("youtube")) {

您可以通过添加更多OR运算符来添加更多,如下所示:

if (url.contains("facebook") || url.contains("flipkart") || 
url.contains("youtube")) {

如果事情变得更混乱,你可以创建一个ArrayList:

ArrayList<String> domains = new ArrayList<String>();
domains.add("facebook");
domains.add("flipkart");
domains.add("youtube");

然后创建一个函数:

private boolean checkDomain(){
for(String domain: domains){
if (url.contains(domain)){
return true;
}
}
return false;
}

并在您的if语句中使用它:

if(checkDomain(url)){
//Open URL in external browser
} else {
//Display URL in your webview
}

您可以创建一个ArrayList或String数组,

String[] items = {"facebook", "flipkart", "stackoverflow"};
String url = "https://stackoverflow.com/questions/8992100/";

然后创建一个检查功能:

public static boolean checkUrls(String inputStr, String[] items) {
return Arrays.stream(items).anyMatch(inputStr::contains);
}

在if语句中使用此方法:

if( checkUrls(url)){
//Open URL in out side the app
} else {
//Display URL in your app
}

最新更新