我在Android中有一个webView,并在其中打开了一个html网页。但是它充满了链接和图像:当我单击其中的一个时,它会加载到我的Web视图中。
我想禁用此行为,因此,如果我单击链接,请不要加载它,然后返回转到首页。
我已经尝试过此解决方案并为自己进行了一些编辑,但这不起作用:
webSettings.setJavaScriptEnabled(myWebViewClient.equals(true));
这将打开一个白页,但我想打开主URL。我的webview客户端代码:
public class MainActivity extends Activity {
public static String URL = "http://www.example.com/";
private WebView webView = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.webView = (WebView) findViewById(R.id.webview);
MyWebViewClient myWebViewClient = new MyWebViewClient();
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(myWebViewClient.equals(true));
webView.reload();
webView.loadUrl(URL);
webSettings.setDisplayZoomControls(true);
webView.setWebViewClient(new WebViewClient());
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN) {
switch(keyCode) {
case KeyEvent.KEYCODE_BACK:
if(webView.canGoBack()){
webView.goBack();
return true;
}
break;
}
}
return super.onKeyDown(keyCode, event);
}
public void onBackPressed(){
if (webView.canGoBack()){
webView.goBack();
}
else{
super.onBackPressed();
}
}
}
答案 0 :(得分:1)
您需要在WebViewClient中覆盖onPageStarted:
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
//here check url i.e equals to your that html page
// if url equals not load url
并进行后退页面检查:
if(view.canGoBack())
// load first page url
}
答案 1 :(得分:0)
您需要一个WebViewClient来覆盖加载网址:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// url is the url to be loaded
return true; // override url (don't load it)
return false; // let url load
}
});
您始终可以返回true以留在同一页面上。
要打开并保留Main Url,请使用以下命令: webview.loadUrl(MainUrl);
,然后覆盖加载网址并始终返回true:
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return true;
}
});