Javascript 将数据保存到LocalStorage,然后使用android Java检索数据
我正在使用Javascript 将数据保存到LocalStorage,然后使用android Java检索数据,javascript,android,webview,Javascript,Android,Webview,我正在使用WebView在我的android应用程序中加载一个本地网页,我的web页面有一个按钮(比如说“btnA”)。当用户单击btnA时,调用javascript函数,该函数将deviceID保存在浏览器的localstorage中 现在我想问几个问题: 当deviceID保存时,我会显示一个警报,并且该警报在应用程序中工作正常,但一旦设备ID保存后,我如何在手机浏览器中看到它?我在手机中使用Chrome,我尝试进入Chrome>设置>站点设置>存储,但什么都没有 当用户点击btnA时,我想
WebView
在我的android
应用程序中加载一个本地网页,我的web页面有一个按钮(比如说“btnA”)。当用户单击btnA时,调用javascript
函数,该函数将deviceID
保存在浏览器的localstorage
中
现在我想问几个问题:
当deviceID保存时,我会显示一个警报,并且该警报在应用程序中工作正常,但一旦设备ID保存后,我如何在手机浏览器中看到它?我在手机中使用Chrome,我尝试进入Chrome>设置>站点设置>存储,但什么都没有
当用户点击btnA时,我想在每5分钟点击api
后运行一次后台服务
,我需要将deviceID(存储在本地存储器中)作为api的参数
传递。如何从android应用程序中的localstorage
获取设备ID,以便将其作为参数传递李>
以下是我在应用程序中加载webview的方式:
webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
webView.loadUrl("file:///android_res/raw/index.html");
这是我的网页:
<!DOCTYPE html>
<html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
</head>
<body>
<button type="submit" value="Click Me" onclick="saveToLocalStorage()">Click Me</button>
<script src="./app.js" type="text/javascript"></script>
</body>
</html>
您可以创建Javascriptinterface:
public class JavaScriptInterface {
Context mContext;
/** Instantiate the interface and set the context */
JavaScriptInterface(Context c) {
mContext = c;
}
@JavascriptInterface
public void deviceId(String deviceId) {
// Do whatever you want with the deviceId
}
}
并将其传递到webview:
webView.addJavascriptInterface(new JavaScriptInterface(this), "injectedObject");
然后,您可以将该id发送到本机应用程序:
<script type="text/javascript">
function sendDeviceId() {
injectedObject.deviceId(localStorage.getItem("deviceID"));
}
</script>
函数sendDeviceId(){
设备ID(localStorage.getItem(“设备ID”);
}
通过从网站内部调用sendDeviceId()
,本机应用程序应接收存储的deviceId。这可以在saveToLocalStorage()
方法的末尾完成
要检查本地存储,您可以在chrome浏览器中打开智能手机上的网站,然后将其连接到计算机并访问chrome://inspect/#devices
从计算机上。这将显示您打开的选项卡,其中有一个要检查的链接,这将打开“网站检查器”,您可以在“应用程序”选项卡中检查该网站的本地存储。这就像一个符咒。你能回答我的第一个问题吗?i、 e.在哪里可以看到此id存储在手机浏览器的localStorage中?因为我确实导航到了手机的chrome localStorage,但什么都没有。我正在加载的网页存储在android_res文件夹中,所以我如何在chrome上打开它?我以为它是您局域网或公共网络中的网站。如果它在资源中,我想我会把网站复制到电脑上的网络服务器上,并从手机的chrome浏览器访问它,我知道这很混乱,但我想不出更好的方法。让我们一起来。
<script type="text/javascript">
function sendDeviceId() {
injectedObject.deviceId(localStorage.getItem("deviceID"));
}
</script>