您的位置:首页 > 移动开发

android---(WebView)

2015-10-31 11:02 253 查看














public class MainActivity extends AppCompatActivity {

private WebView webView;

private Handler handler;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

webView = (WebView) findViewById(R.id.webView);

handler = new Handler();

//webView设置对象
WebSettings settings = webView.getSettings();

//让 webView 支持 javaScript
settings.setJavaScriptEnabled(true);

//支持缩放
settings.setSupportZoom(true);
settings.setBuiltInZoomControls(true);

//在内部显示滚动条
webView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);

//可能打开虚拟键盘
webView.requestFocus();

//当点击页面连接时,在当前的webView 中显示
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});

//处理标题,图标等
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
}
});

//调用js
webView.addJavascriptInterface(new MyObject(), "demo"); //demo:为别名

//加载互联网 网页
// webView.loadUrl("http://www.baidu.com");

//加载本地网页 assets文件夹下的
webView.loadUrl("file:///android_asset/index.html");

}

//与js交互
public class MyObject {
//调用 javascript 接口注解
@JavascriptInterface
public void clickOnAndroid() {

//线程将加载到对列中
handler.post(new Runnable() {
@Override
public void run() {
webView.loadUrl("javascript:myfunc()");//调用javascript 的方法,这个方法在内置网页中
}
});
}
}

//设置回退键
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
webView.goBack();//返回上一页
}
return super.onKeyDown(keyCode, event);
}

}

//assets文件夹下的index.html
<html>
<head>
<title>hello world</title>
</head>
<script lang="javascript">

function myfunc(){

document.getElementById("imagId").src="b.jpg";

}
</script>

<body>

<!--调用anddroid下的代码-->
<a onclick="window.demo.clickOnAndroid()">
<img src="a.jpg" id="imagId"/>
</a>

</body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: