我使用forge.prefs.get来获取缓存的用户令牌,它在iOs和web中运行良好。我使用backbone.js来渲染一切。 在Android中,我在尝试使用相同的调用时遇到此错误:
[DEBUG] Native call prefs.get with task.params: {"key":"user"}
[DEBUG] Native call notification.hideLoading with task.params: {}
[INFO] --------- beginning of /dev/log/system
[DEBUG] Returned: {"content":{"message":"Method not supported on this platform","type":"UNAVAILABLE","subtype":null},"callid":"4B01A334-2DC4-4511-A029-2C9D9B131D8C","status":"error"}
这是我在运行模拟器时得到的。如果我编译一个APK并安装它,代码就会无声地失败并且用户被卡在登录屏幕上。
这是我用来获取用户信息的代码:
forge.prefs.get('user', function(user){ //success
if(user === null){
alert('USER not found');
App.ViewManager.Login();
}else{
var u = JSON.parse(user);
forge.logging.info(u);
forge.logging.info(u.authentication_token);
App.Utils.authToken = u.authentication_token;
App.ViewManager.Companies();
}
})
这用于存储数据:
forge.prefs.set('user', JSON.stringify(data), function(){},function(){});
同样,这在iOS和Web版本中完美运行。关于为什么会发生这种情况的任何想法?
我在模拟器上使用android 4.4,Trigger工具包版本2.1.3和prefs模块是版本2.0
答案 0 :(得分:0)
使用forge.prefs.set
或forge.prefs.get
时,您无需stringify
或parse
数据。数据自动存储为JSON对象,因此请尝试将代码更改为:
forge.prefs.set( 'user', data );
并删除JSON.parse(user);
行。