2 qq 32015665 qq_32015665 于 2016.09.18 11:03 提问

webview怎么用,求围观

想在应用程序访问网页,不想调用系统浏览器,只剩下webview可以用了么?

4个回答

of214
of214   2016.09.18 12:39
已采纳
liulishuo_
liulishuo_   2016.09.18 11:15

WebView


//android调用js的方法
webView.loadUrl("JavaScript:changeContent()");
//允许js来操作Android程序.
//object:代表了执行这个js的对象.
//name:代表了Android程序.
webView.addJavascriptInterface(this, "mAndroid");
//注意此注解添加在onCreat()前
@SuppressLint("AddJavascriptInterface")
//注解:js所调用的android的方法必须添加这个注解.
@JavascriptInterface
获取WebView的方法:
①常规的findViewById();
②webView = new WebView(mContext);

setContentView(webView);

//获取用来对webView进行设置的对象
WebSettings settings = webView.getSettings();
//设置支持javascript脚本功能
settings.setJavaScriptEnabled(true);
//设置支持缩放
settings.setSupportZoom(true);
//设置显示缩放控制器
settings.setDisplayZoomControls(true);
//设置编码格式
settings.setDefaultTextEncodingName("utf-8");
//让WebView支持类似alert这样的特殊javascript语句
webView.setWebChromeClient(new WebChromeClient());
//修改默认的浏览器,避免打开其他App加载
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
webView.loadUrl(String url);
//webView.loadUrl("http://www.google.com");//加载网页数据
webView.loadUrl("file:///android_asset/html/test1.html");//加载本地数据
webView.loadData(String data,String mimeType, String encoding);
webView.loadDataWithBaseURL(String baseUrl, String data,String
mimeType, String encoding, String historyUrl);
//处理返回键,支持返回上一页面,避免一次性退出App.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK://返回键
//canGoBack:可以返回到前一页
if (webView != null && webView.canGoBack()) {
//后退
webView.goBack();
} else {
finish();
}
break;
}
return false;
}
//如果需要对url所对应的数据进行修改后再加载到WebView控件上,可以采用以下的方式实现。
//先获取到网络数据,然后对数据进行修改,再显示到WebView控件上
private void loadNetworkData() {
new Thread(new Runnable() {
@Override
public void run() {
byte[] data = HttpURLConnHelper.loadByteFromURL(URL_STRING);
String result = new String(data);
final String htmlString = result.replace("http://www.leiphone" +
".com/resWeb/images/common/lp_logo.png", "http://www.baidu.com/img/bdlogo" +
".gif");
handler.post(new Runnable() {
@Override
public void run() {
webView.loadDataWithBaseURL(null, htmlString, "text/html", "utf-8", null);
}
});
}
}).start();
}

qq_32015665
qq_32015665 特别感谢,我学习一下
大约一年之前 回复
liulishuo_
liulishuo_ 可以使用如下设置即可://修改默认的浏览器,避免打开其他App加载 webView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return super.shouldOverrideUrlLoading(view, url); } });
大约一年之前 回复
oSanYeCao1234567
oSanYeCao1234567   Ds   Rxr 2016.09.18 23:39

那就只能使用webview啦

csdnpl0101001
csdnpl0101001   2016.10.26 17:21

1.使用webview
2.嵌入qq浏览器/crosswalkwebview
3.CustomTabs

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!