gpt4 book ai didi

java - Android服务读取localStorage?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:37:46 27 4
gpt4 key购买 nike

我已经为 Android 开发了一个 PhoneGap 应用程序。该应用程序由 webapp (HTML/jQuery) 和由 webapp 启动的后台服务(Java 代码)组成。

这个 webapp 写入 window.localStorage 就像

    <script>
window.localStorage.setItem("name","MyName");
</script>

是否可以从我的 Java 代码中读取 localStorage 中的这个名称

最佳答案

这是可能的。要执行 JavaScript 并获得响应,您可以执行以下操作:

在代码中定义 JavaScript 回调接口(interface):

class MyJavaScriptInterface {
public void someCallback(String jsResult) {
// this will be passed the local storage name variable
}
}

将此回调附加到您的 WebView:

MyJavaScriptInterface javaInterface = new MyJavaScriptInterface();
webView.addJavascriptInterface(javaInterface, "HTMLOUT");

从脚本运行 JavaScript 调用 window.HTMLOUT.someCallback:

webView.loadUrl("javascript:( function () { var name = window.localStorage['name']; window.HTMLOUT.someCallback(name); } ) ()");

注意 - window.localStorage['name']window.localStorage.getItem('name') 相同

This post here on stackoverflow helped me

您可能需要使用 super.webView.addJavascriptInterfacesuper.addJavascriptInterface 来添加接口(interface)。您可能需要使用 super.webView.loadUrlsuper.loadUrl 来调用它。这完全取决于您要从哪里调用它们。

关于java - Android服务读取localStorage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18213895/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com