Andrews webview synchronized with the H5 logged in (localStorage)

The following copy and paste, other operations do not need to do too much

After a successful login using the information stored about sp needs just fine

    SpUtil spUtil = new SpUtil(this , "UserMsg");
    token = spUtil.getString("user_token", "");
    userID = spUtil.getInt("userID", 0);
    type = spUtil.getString("type", "");
    //首先要知道h5页面存储到本地的信息有哪些;(localStorage) -不知道的问你们写h5的同事
	//以上这些数据在登录信息里可以获取  --  ;

        webTvdetails.setWebChromeClient(new WebChromeClient());
        webTvdetails.getSettings().setDatabaseEnabled(true);

        WebSettings settings = webTvdetails.getSettings();

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
        }

        String absolutePath = this.getApplicationContext().getCacheDir().getAbsolutePath();
        settings.setAppCachePath(absolutePath);

        settings.setJavaScriptCanOpenWindowsAutomatically(true);//设置js可以直接打开窗口,如window.open(),默认为false
        settings.setJavaScriptEnabled(true);//是否允许执行js,默认为false。设置true时,会提醒可能造成XSS漏洞
        settings.setBuiltInZoomControls(true);
        settings.setLoadWithOverviewMode(true);//和setUseWideViewPort(true)一起解决网页自适应问题
        settings.setUseWideViewPort(true);
        settings.setAllowContentAccess(true);
        settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
        settings.setDomStorageEnabled(true);//DOM Storage
        settings.setDatabaseEnabled(true);
        settings.setAllowFileAccess(true);
        settings.setAppCacheMaxSize(1024 * 1024 * 8); //8倍缓存
        settings.setAppCacheEnabled(true);

        webTvdetails.setWebViewClient(new WebViewClient() {
            @Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
                handler.proceed();// 接受所有网站的证书
            }
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                String key = "token"; //这个 “token” 不是随便起的 是看你们H5端存储的是什么,存几个就写几个  QwQ
                String key_userID = "userID";
                String key_type = "type";
                String js = "window.localStorage.setItem('"+ key +"','"+ token +"');";
                String js_type = "window.localStorage.setItem('"+ key_type +"','"+ type +"');";
                String js_userid = "window.localStorage.setItem('"+ key_userID +"','"+ userID +"');";

                String jsUrl = "javascript:localStorage.setItem('"+ key +"','"+ token +"');";
                String jsUrl_type = "javascript:localStorage.setItem('"+ key_type +"','"+ type +"');";
                String jsUrl_userid = "javascript:localStorage.setItem('"+ key_userID +"','"+ userID +"');";

                if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
                    view.evaluateJavascript(js , null);
                    view.evaluateJavascript(js_type , null);
                    view.evaluateJavascript(js_userid , null);
                }else {
                    view.loadUrl(jsUrl);
                    view.loadUrl(jsUrl_type);
                    view.loadUrl(jsUrl_userid);
                    view.reload();
                }
            }
        });
        webTvdetails.loadUrl(“你要加载的页面”);

These are the H5 Andrews and synchronous login hee hee (not write blog forgive me)

Published 19 original articles · won praise 12 · views 3596

Guess you like

Origin blog.csdn.net/a506656675/article/details/105199742