此平台不支持该方法

时间:2014-03-26 13:32:21

标签: android backbone.js trigger.io

我使用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

1 个答案:

答案 0 :(得分:0)

使用forge.prefs.setforge.prefs.get时,您无需stringifyparse数据。数据自动存储为JSON对象,因此请尝试将代码更改为:

forge.prefs.set( 'user', data );

并删除JSON.parse(user);行。