我关注的是在Android WebView中加载浏览器中的外部URL和内部URL。尝试在stackoverflow中搜索,但自谷歌的新更新
“”“shouldOverrideUrlLoading(WebView view, String url)
此方法在API级别24中已弃用。
请改用shouldOverrideUrlLoading(WebView, WebResourceRequest)
。 “”
尝试执行下面的代码,但它从未起作用
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (Uri.parse(url).getHost().equals("http://google.com")) {
return true;
}else{
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
return false;
}
}
获取此错误: 错误:(26,5)错误:方法不会覆盖或实现超类型的方法
此外,正如我用Google搜索并了解到的那样,该方法也已弃用,不再使用。
有人可以帮助我成功解析外部URL到浏览器。
提前谢谢。
编辑一个是下面
import android.content.Intent;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import java.net.URL;
public class rut extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_rut);
WebView webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("http://google.com/r.html");
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
}
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.contains("http://google.com/")) { //check for internal url
return super.shouldOverrideUrlLoading(view, url);
}else{
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
return true;
}
});
}
答案 0 :(得分:4)
试试这个。
webview.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.contains("internal_url")) { //check for internal url
return super.shouldOverrideUrlLoading(view, url);
}else{
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
return true;
}
}});