我正在连接到url,只有在我的webView浏览器中正确设置了令牌值时才会加载。
这是一个脚本,当我启动webView时会找到userToken的null值:
$.ajaxSetup({
data: {
token: localStorage.userToken
}
});
sendToApp = function(_key, _val) {
var iframe = document.createElement("IFRAME");
iframe.setAttribute("src", _key + ":##sendToApp##" + _val);
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);iframe = null;
}
IsMobile = true;
$.when(
loadData.setup()
).then(function(data) {
Setup = data;
Struct = new App.Collection.Struct();
View = new App.View.Phone();
Zone = new App.Collection.Zone();
Zone.setAll();
Zone.findWhere({id:"0"}).set('path', 'Favourites')
Struct.startLoop();
});
我收到错误:
I/chromium: [INFO:CONSOLE(3)] "Uncaught TypeError: Cannot read property 'userToken' of null" , source: http://217.76.112.72:60180/js/mobile.js (3)
如何将userToken设置为我的android webView的本地存储,以便此值不再为null?
我读了几篇关于webView数据库或javascript参数设置的帖子,但我找不到我的问题的答案:
JS属性设置:
Uncaught TypeError: Cannot set property 'value' of > null" in Android
数据库主题:
Android webview & localStorage
Using local storage on Android webview
例如,在那些主题中,人们正在设置某种数据库的路径,从我所理解的是localStorage,但如果我是对的,我该怎样设置它的价值?
编辑:我的webView设置:
public void setupWebView(String url, String token) {
HashMap<String, String> map = new HashMap<>();
map.put("userToken", token);
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl(url, map);
}
答案 0 :(得分:0)
使用2参数loadUrl无济于事。您将无法访问标题。
您可以做什么,是否可以在WebView中调用函数。
webView.loadUrl("javascript:setUserToken(token)");
您也可以使用此功能在页面上启动其余代码。
function setUserToken(userToken) {
$.ajaxSetup({
data: {
token: userToken
}
});
// ... Launch your ajax
}
答案 1 :(得分:-3)
访问Web视图本地存储使用
localStorage.getItem
和localStorage.setItem('token', 'token_value')
localStorage.getItem('token')
。
{{1}}
WebView与浏览器非常相似。