Android服务读取localStorage?

Sax*_*ist 6 java android local-storage cordova

我开发了适用于Android的PhoneGap应用程序.该应用程序由webapp(HTML/jQuery)和由webapp启动的后台服务(Java代码)组成.

这个webapp写入window.localStorage之类的

    <script>
       window.localStorage.setItem("name","MyName");
    </script>
Run Code Online (Sandbox Code Playgroud)

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

Ros*_*oss 8

这个有可能.要执行JavaScript并获得响应,您可以执行以下操作:

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

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

将此回调附加到WebView:

MyJavaScriptInterface javaInterface = new MyJavaScriptInterface();
webView.addJavascriptInterface(javaInterface, "HTMLOUT");
Run Code Online (Sandbox Code Playgroud)

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

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

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

这篇关于stackoverflow的帖子帮助了我

您可能需要使用super.webView.addJavascriptInterfacesuper.addJavascriptInterface添加界面.您可能需要使用super.webView.loadUrlsuper.loadUrl调用它.这一切都取决于你打算从哪里打电话.