WebView y H5 esas cosas

1. Uso básico de WebView
1. Uso de la carga de la página html a través de webView:
//例如:加载assets文件夹下的test.html页面
mWebView.loadUrl("file:///android_asset/test.html")
//例如:加载网页
mWebView.loadUrl("http://www.baidu.com")

Nota: Generalmente, la página web se abrirá dentro de la aplicación; de lo contrario, se abrirá en el navegador predeterminado de su teléfono. Al mismo tiempo, haga que el título de la aplicación muestre el título de la página H5. Configure WebViewClient:

webview.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {//设置App内部打开网页
                view.loadUrl(url);
                return true;
            }

            @Override
            public void onPageFinished(WebView view, String url) {//设置标题
                tv_title.setText(view.getTitle());

            }
 });
2. WebVIew Access HTTPS (solicitud de protocolo utilizando el tiempo de URL cifrado ssl ). Si no se procesa, la página está en blanco. Cuando se abre con el navegador que viene con el sistema, aparecerá un cuadro de diálogo para confirmar el certificado. El procesamiento requerido es reescribir el método onReceivedSslError de la clase WebViewClient , de la siguiente manera:

 @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                handler.proceed();
            }

Dos, interacción WebView y H5
Requisito previo : la llamada al método js debe ser compatible con webView
WebSettings webSettings = mWebView.getSettings();
    //设置为可调用js方法
    webSettings.setJavaScriptEnabled(true);
1   Android llama al método JavaScript en la página HTML de forma local
//若调用的js方法没有返回值 do()方法为JS的方法
mWebView.loadUrl("javascript:do()");

//有返回值
mWebView.evaluateJavascript("do(1,2)", new ValueCallback<String>() {
        @Override
        public void onReceiveValue(String value) {
            Log.e(TAG, "onReceiveValue value=" + value);
        }
    });
2.  js llama a métodos Java nativos de Android
Primero, defina una clase Java:
public class JsInteration {
    @JavascriptInterface //Android4.2以上可以直接使用@JavascriptInterface注解来声明
    public String back() {
        return "hello world";
    }
}
Luego, llame al método en Android en js
//第一个参数是 供给js调用的类,第二个参数是js中要用到的调用这个类中的方法的对象,可以随便起
mWebView.addJavascriptInterface(new JsInteration(), "android");
Pregunta: A veces se encuentra que Js llama al método de Android no válido. Solución:
你可需要加上注解:@SuppressLint("SetJavaScriptEnabled")

Supongo que te gusta

Origin blog.csdn.net/xufei5789651/article/details/69566985
Recomendado
Clasificación