防止WebView打开浏览器
问题描述:
我对于给定的WebView已经是活动的JavaScript,并且在WebView内部而不是在浏览器中打开新链接。 这是主要活动防止WebView打开浏览器
package com.Afrogfx.pronouns;
import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.view.Menu;
import android.webkit.WebView;
@SuppressLint("SetJavaScriptEnabled")
public class MainActivityPronouns extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_activity_pronouns);
WebView wvHtml = (WebView) findViewById(R.id.webview);
wvHtml.getSettings().setBuiltInZoomControls(true);
wvHtml.getSettings().setJavaScriptEnabled(true);
wvHtml.loadUrl("http://afrogfx.com/appcatcategories.php?catid=13&parentid=11");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main_activity_pronouns, menu);
return true;
}
}
我怎么能韩德尔我的代码来打开网站的所有链接的WebView(APP)内,而不是在浏览器&(不显示用户在打开浏览器)。
答
,所以你必须使用WebviewClicent这里..是类
private class HelloWebViewClient extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url)
{
Utils.showActivityViewer(WebsiteActivity.this);
new Thread(new Runnable()
{
public void run()
{
view.loadUrl(url);
}
}).start();
return true;
}
}
,并绑定在网页视图作为
webview.setWebViewClient(new HelloWebViewClient());
,并参考http://developer.android.com/reference/android/webkit/WebViewClient.html
+0
欢迎来到“只有创建视图层次结构的原始线程才能触及其视图”异常) – Stan
答
对于刚刚创建的子类即扩展webclient并使用该类的方法onPageFinished(WebView c,String url)和
公共布尔shouldOverrideUrlLoading(最终的WebView视图,最终字符串URL)
这里是代码 -
myWebView.setWebViewClient(new WebViewClient()
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
//view.loadUrl(url);
System.out.println("hello");
return true;
}
});
myWebView.loadUrl(url);
的可能重复[点击网址,打开默认的浏览器(http://*.com/questions/2378800 /点击 - 网址 - 打开 - 默认 - 浏览器) – Confuse