解决WebView写入localstorage但首次加载取不到值的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决WebView写入localstorage但首次加载取不到值的问题相关的知识,希望对你有一定的参考价值。
参考技术A本文虽然写的是解决android写localstorage的问题,但是对于ios同样适用。
在android中,native经常需要和h5页面进行交互,比如将本地token写入h5,然后h5中的js获取token进行api请求。
写入localstorage的方法很标准,即在webview的onPageFinished中注入并调用一段js即可。
但是这样做有个问题,就是token注入是在页面加载完毕之后进行,而页面加载完毕,页面中的js也就基本执行完毕了,所以页面中原有的js执行获取token是获取不到的。
一种解决方法就是在h5内判断token是否为空,如果是则重新刷新页面。因为token为空是在首次加载页面时发生的,所以也只有在首次加载页面时会重新刷新,只有首次加载页面成功,写入localstorage,后面获取localstorage都不会失败了。
还有一种方法就是 在登录或者注册成功后 ,或者首次进入本地主页面时,隐式的创建一个webview并访问目标根url,将localstorage预先写入。注意,根目标url一定要以/结尾,比如 https://www.baidu.com/
以上是关于解决WebView写入localstorage但首次加载取不到值的问题的主要内容,如果未能解决你的问题,请参考以下文章
android 中 webview 怎么用 localStorage
android 中 webview 怎么用 localStorage
android 中 webview 怎么用 localStorage
在 webView 和 CordovaWebView android 之间共享 localStorage