Webview与JavaScript交互

来源:互联网 发布:植物生长算法程序 编辑:程序博客网 时间:2024/05/10 11:04
WebView webView = (WebView) findViewById(R.id.webView_FranceAuditionActivity);
webView.setVerticalScrollBarEnabled(false);//webView相关设置WebSettings settings = webView.getSettings();//开启JS功能settings.setJavaScriptEnabled(true);settings.setBlockNetworkImage(false);settings.setJavaScriptCanOpenWindowsAutomatically(true);settings.setUseWideViewPort(true);//关键点settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);settings.setDisplayZoomControls(false);settings.setAllowFileAccess(true); // 允许访问文件settings.setLoadWithOverviewMode(true);settings. setCacheMode(WebSettings.LOAD_NO_CACHE);DisplayMetrics metrics = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metrics);int mDensity = metrics.densityDpi;MyLog.d("ttt", "densityDpi = " + mDensity);if (mDensity == 240) {    settings.setDefaultZoom(WebSettings.ZoomDensity.FAR);} else if (mDensity == 160) {    settings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);} else if(mDensity == 120) {    settings.setDefaultZoom(WebSettings.ZoomDensity.CLOSE);}else if(mDensity == DisplayMetrics.DENSITY_XHIGH){    settings.setDefaultZoom(WebSettings.ZoomDensity.FAR);}else if (mDensity == DisplayMetrics.DENSITY_TV){    settings.setDefaultZoom(WebSettings.ZoomDensity.FAR);}else{    settings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);}webView.setWebViewClient(new WebViewClient() {    @Override    public void onPageStarted(WebView view, String url, Bitmap favicon) {               super.onPageStarted(view, url, favicon);    }    @Override    public void onPageFinished(WebView view, String url) {                super.onPageFinished(view, url);    }});
private class JsInterface {    private Context mContext;    public JsInterface(Context context) {        this.mContext = context;    }    @JavascriptInterface    public void callApp(String type) {        MyLog.e("kkk","franceauditon--JsInterface");           }}

//java调用js  callJSStart()public void callJSStart() {    runOnUiThread(new Runnable() {        @Override        public void run() {            webView.loadUrl("javascript: callJSStart()");        }    });}

webViewLoadUrl(url);
JsInterface jsInterface= new JsInterface(this);
webView.addJavascriptInterface(jsInterface, "temp");
webView.setWebChromeClient(new WebChromeClient());

@Overrideprotected void onDestroy() {    super.onDestroy();    if (webView != null) {        webView.clearCache(true);        webView = null;    }}

0 0
原创粉丝点击