我正在尝试确定在Push适配器中执行业务逻辑的最佳方法。我已经从我的本地环境成功运行了示例PushAdapter(Module_07_04_nativeAPIForiOSPush),但是,添加WL.Server.setActiveUser()会引发错误。
我在Worklight Studio(6.0.0.201309171829)中本地运行了演示PushAdapter适配器,作为适配器中的第一行添加:
WL.Server.setActiveUser( “PushAppRealm”,用户id); ...
部署适配器更改,使用相同的参数运行并在Worklight控制台中获取此错误:
找不到方法com.worklight.integration.js.JavaScriptIntegrationLibraryImplementation.setUserIdentity(string,string)。 (/integration.js#36) FWLSE0101E:引起:[project Module_07_04_nativeAPIForiOSPush] null
如果没有此行,适配器运行没有任何问题。我正在尝试设置活动用户,因为我想获取用户的首选项,以确定是否创建通知的业务逻辑。还有另一种方法吗?
我也在一个新的工作区中运行它(在我将Fix Pack 1应用到WL Studio 6之后),但结果相同。
问题是1)为什么会出现这个错误?,2)这是一种有效的方法吗?
感谢。
答案 0 :(得分:2)
var userIdentity = {
userId: "userid",
displayName: "userid",
attributes: {
foo: "bar"
}
};
WL.Server.setActiveUser(“PushAppRealm”,userIdentity);
这应该有效。但是,对于此示例,您不应显式设置用户标识。方法WL.Server.setActiveUser()用于在基于适配器的身份验证的情况下设置用户标识。此示例使用基于表单的身份验证。