安卓 webview与H5同步登录状态(localStorage)

以下内容复制粘贴即可,其他不需要做过多的操作

在登录成功后用sp存储一下需要的信息就好了

    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(“你要加载的页面”);

以上就是安卓与H5同步登录 嘻嘻(不会写博客 见谅)

发布了19 篇原创文章 · 获赞 12 · 访问量 3596

猜你喜欢

转载自blog.csdn.net/a506656675/article/details/105199742