Я загружаю локальную веб-страницу в свое приложение android
, используя WebView
, а мой web page
имеет одну кнопку (скажем, «btnA»). Когда пользователь нажимает btnA, вызывается функция javascript
, которая сохраняет deviceID
в localstorage
браузера *.
Теперь есть несколько вещей, которые я хотел бы спросить:
- Я показываю предупреждение, когда идентификатор устройства сохранен и это предупреждение работает нормально в приложении, но как я могу увидеть идентификатор устройства в браузере телефона после его сохранения? Я использую Chrome на своем телефоне, и я попытался перейти к Chrome> Настройки> Настройки сайта> Хранилище, но там ничего нет.
- Когда пользователь нажимает на btnA, я хочу запустить фоновый
service
через каждые 5 минут, которые попадают в api
, и мне нужно передать идентификатор устройства (хранящийся в localStorage) как parameter
для api. Как мне получить этот идентификатор устройства из localstorage
в моем приложении 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;
}