android---(WebView)

来源:互联网 发布:上海巴斯德研究所 知乎 编辑:程序博客网 时间:2024/06/07 20:20

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

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>
0 0
原创粉丝点击