我正在加载本地网页android
应用程序使用WebView
and my web page
有一个按钮(比方说“btnA”)。当用户点击 btnA 时,javascript
调用函数来保存deviceID
在浏览器的localstorage
.
现在有几件事想请教一下:
- 保存 deviceID 时,我会显示一条警报,并且该警报在应用程序中工作正常,但保存后如何在手机浏览器中查看 deviceID?我在手机中使用 Chrome,我尝试转到 Chrome > 设置 > 站点设置 > 存储,但没有任何内容。
- 当用户单击 btnA 时,我想运行后台
service
每 5 分钟后api
我需要将 deviceID (存储在 localStorage 中)作为parameter
对于 API。我如何获取该 deviceIDlocalstorage
在我的android应用程序中,这样我可以将它作为参数传递?
这就是我在应用程序中加载网络视图的方式:
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>
这是我的app.js
:
function saveToLocalStorage() {
var generatedString = randomString(9, '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
if(localStorage.getItem("deviceID") == null){
localStorage.setItem("deviceID", generatedString);
alert("DeviceID saved.")
}
}
function randomString(length, chars) {
var result = '';
for (var i = length; i > 0; --i) result += chars[Math.floor(Math.random() * chars.length)];
return result;
}
您可以创建一个 Javascript 界面:
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.addJavascriptInterface(new JavaScriptInterface(this), "injectedObject");
然后您可以将该 id 发送到本机应用程序:
<script type="text/javascript">
function sendDeviceId() {
injectedObject.deviceId(localStorage.getItem("deviceID"));
}
</script>
通过致电sendDeviceId()
从网站内部,本机应用程序应该接收存储的 deviceId。这可以在年底完成saveToLocalStorage()
method.
要检查本地存储,您可以在智能手机上用 Chrome 浏览器打开该网站,然后将其连接到计算机并访问chrome://inspect/#devices
从计算机。这应该显示您打开的选项卡,并且其中有一个要检查的链接,这将打开网站检查器,您可以在“应用程序”选项卡中检查该网站的本地存储。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)