如何在Android中运行打字稿的webView中为本地存储/会话存储设置值?

时间:2021-06-23 07:46:11

标签: android typescript android-studio webview android-webview

我正在尝试为在打字稿上运行的 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"

对这个问题有什么建议吗?

0 个答案:

没有答案
相关问题