Android学习笔记-webview使用总结

来源:互联网 发布:数控镗床编程自学网 编辑:程序博客网 时间:2024/04/30 10:40

webview基本设置:

    private void setWebView(WebView webView) {        WebSettings seeting = webView.getSettings();        seeting.setJavaScriptEnabled(true);        //  webView.requestFocus();        webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);   //返回true,在app内打开网页否则使用手机浏览器开网页。        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);                getSupportActionBar().setTitle(title);            }        });    }

通过上面的设置就可以使用webview.loadurl在app内展示网页了。


js调用app中的方法

   webView.addJavascriptInterface(new JsObject(), "injectedObject");

app执行javascript方法

  public void loadJavascript(String javascript) {        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {            // In KitKat+ you should use the evaluateJavascript method            mWebView.evaluateJavascript(javascript, new ValueCallback<String>() {                @TargetApi(Build.VERSION_CODES.HONEYCOMB)                @Override                public void onReceiveValue(String s) {                    JsonReader reader = new JsonReader(new StringReader(s));                    // Must set lenient to parse single values                    reader.setLenient(true);                    try {                        if(reader.peek() != JsonToken.NULL) {                            if(reader.peek() == JsonToken.STRING) {                                String msg = reader.nextString();                                if(msg != null) {                                    Toast.makeText(getActivity().getApplicationContext(),                                            msg, Toast.LENGTH_LONG).show();                                }                            }                        }                    } catch (IOException e) {                        Log.e("TAG", "MainActivity: IOException", e);                    } finally {                        try {                            reader.close();                        } catch (IOException e) {                            // NOOP                        }                    }                }            });        } else {            mWebView.loadUrl("javascript:"+javascript);        }    }

html选择文件
重载webview的setWebChromeClient方法,例:

 mWebView.setWebChromeClient(new WebChromeClient() {            public boolean onShowFileChooser(                    WebView webView, ValueCallback<Uri[]> filePathCallback,                    WebChromeClient.FileChooserParams fileChooserParams) {                if(mFilePathCallback != null) {                    mFilePathCallback.onReceiveValue(null);                }                mFilePathCallback = filePathCallback;                //选择文件代码.....}
0 0
原创粉丝点击