我正在尝试为在打字稿上运行的 webview 设置 localStorage / sessionStorage 中的值。
步骤 1-> 我已经为 webview 设置了以下属性
webView.settings.javaScriptEnabled = true
webView.settings.domStorageEnabled = true
webView.settings.databaseEnabled = true
webView.settings.allowFileAccess = true
webView.settings.allowContentAccess = true
步骤 2-> 我在以下脚本的帮助下设置存储值
val mimeType = "text/html"
val encoding = "utf-8"
val injection = "<script type='text/javascript'>" +
"sessionStorage.setItem('" + key + "', '" + val1 + "');" +
"sessionStorage.setItem('" + key2 + "', '" + val2 + "');" +
"sessionStorage.setItem('" + key3 + "', '" + val3 + "');" +
"sessionStorage.setItem('" + key4 + "', '" + val4 + "');" +
"localStorage.setItem('" + key5 + "', '" + val5 + "');" +
"localStorage.setItem('" + key6 + "', '" + val6 + "');" +
"console.log(sessionStorage.getItem('ACCESS_TOKEN'))" +
"window.location.replace('**webview_url**');" +
"</script>"
webView.loadDataWithBaseURL(
"**webview_url**",
injection,
mimeType,
encoding,
""
)
我可以使用以下代码访问存储中保存的值。因此,值似乎保存在存储中。
"console.log(sessionStorage.getItem('ACCESS_TOKEN'))"
但是一旦加载了 webview,它就会加载空白的 webview。 另外,我已经提供了以下权限
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
并设置 android:usesCleartextTraffic="true"
对这个问题有什么建议吗?