webview.setWebChromeClient(
new WebChromeClient())
;
webview.setWebViewClient(
new MyWebViewClient())
;
WebSettings webSettings =
webview.getSettings()
;
//设置WebView属性,能够执行Javascript脚本
webSettings.setJavaScriptEnabled(
true)
;
//设置可以访问文件
webSettings.setAllowFileAccess(
true)
;
//设置支持缩放
// webSettings.setBuiltInZoomControls(true);
//自适应屏幕
webview.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.
SINGLE_COLUMN)
;
//设置js可以直接打开窗口,如window.open(),默认为false webSettings.setJavaScriptCanOpenWindowsAutomatically(
true)
; webSettings.setSupportZoom(
true)
;//是否可以缩放,默认true webSettings.setBuiltInZoomControls(
true)
;//是否显示缩放按钮,默认false webSettings.setUseWideViewPort(
true)
;//设置此属性,可任意比例缩放。大视图模式 webSettings.setLoadWithOverviewMode(
true)
;//和setUseWideViewPort(true)一起解决网页自适应问题 webSettings.setAppCacheEnabled(
true)
;//是否使用缓存,要是webView中药加载视频,这个必须打开 webSettings.setDomStorageEnabled(
true)
;//DOM Storage webview.loadUrl(url)
;
public class MyWebViewClient
extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view
, String url) {
view.loadUrl(url)
;
return true;
}
@Override
public void onPageFinished(WebView view
, String url) {
super.onPageFinished(view
, url)
;
view.getSettings().setJavaScriptEnabled(
true)
;
}
} 以上可以完整的加载一个web页面下面我们说一下:web页面的中js交互调起分享或者是跳转页面(js调Android中的方法)share.openShare(...);
webview.addJavascriptInterface(
new JsObject(
this)
, "share")
;public class JsObject {
private Context
context;
public JsObject(Context context) {
this.
context = context
;
}
@JavascriptInterface
public void openShare(
final String title
, final String shareUrl
, final String content) {
//调起分享的代码,参数js修改
//或者是进行页面跳转
}
}
//当webView要调起支付时,操作系统会将支付宝的URL拦截,导致你打不开支付宝页面。
webview.setWebViewClient(
new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view
, String url) {
if( url.startsWith(
"http:") || url.startsWith(
"https:") ) {
return false;
}
try{
Intent intent =
new Intent(Intent.
ACTION_VIEW, Uri.
parse(url))
;
startActivity( intent )
;
}
catch(Exception e){}
return true;
}
@Override
public void onPageFinished(WebView view
, String url) {
super.onPageFinished(view
, url)
;
view.getSettings().setJavaScriptEnabled(
true)
;
}
})
;
//当webView加载视频关闭网页声音依旧播放时,添加以下代码
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.
back:
//页面返回时:
webview.loadUrl(
"about:blank")
;
finish()
;
break;
}
}
@Override
public void onPause() {
super.onPause()
;
webview.onPause()
;
webview.pauseTimers()
;
}
@Override
public void onResume() {
super.onResume()
;
webview.resumeTimers()
;
webview.onResume()
;
}
@Override
protected void onDestroy() {
webview.destroy()
;
webview =
null;
super.onDestroy()
;
}
希望以上对您会有帮助,有什么问题可以留言哦。