我正在尝试在 Unity Scopes Tool 上运行使用 Ubuntu 15.10 上的在线帐户的 Unity JavaScript 范围,但在使用 OnlineAccountClient 类时出现错误。
我关注了网上账户指南- 添加了账户策略组,添加了app.application和app.service文件,并根据示例更新了manifest.json。
我也在使用 Facebook 帐户,因此配置基本相同,如果需要提供,请告诉我。
找不到任何如何使用 OnlineAccountClient 类的示例,但根据来源,看来我必须传递3个参数。
因此,我尝试在我的范围的搜索功能中使用它,如下所示:
var account = new scopes.lib.OnlineAccountClient('com.ubuntu.developer.me.untitled_untitled', 'ubuntu.com.developer.me.untitled_untitled', 'facebook')
第一个和第二个参数是来自 app.service 的服务类型和来自 app.application 的服务 ID。Untitled 是默认范围名称,现在只是测试,所以我没有更改它。
但是当我运行范围时出现以下错误:
/home/user/Scopes/build-untitled-Desktop_2-Default/src/untitled.username_untitled.js:60
var account = new scopes.lib.OnlineAccountClient('com.ubuntu.developer.me.untitled_untitled', 'ubuntu.com.developer.me.untitled_untitled', 'facebook');
^
Error: bad_weak_ptr
at Error (native)
at null.<anonymous> (/home/user/Scopes/build-untitled-Desktop_2-Default/src/untitled.username_untitled.js:60:51)
你知道为什么我会收到此错误以及如何修复它吗?这是在 js 范围内使用在线帐户的正确方法吗?
答案1
谢谢你,这确实是一个错误,我提交了:
https://bugs.launchpad.net/unity-js-scopes/+bug/1549477
并提交了修复合并请求,谢谢你,
修复将在未来几天内发布,
答案2
我面临同样的问题。
在查看代码时,我没有找到任何工厂/初始化/静态方法用于创建 OnlineAccountClient 对象。在测试中http://bazaar.launchpad.net/~unity-team/unity-scopes-api/trunk/view/head:/test/gtest/scopes/OnlineAccountClient/OnlineAccountClient_test.cppA共享指针在调用 OnlineAccountClient 构造函数之前就已经创建,这是此构造函数完成的 shared_from_this() 方法调用所必需的。
因此:我可能是错的或者遗漏了一些东西,但我们是否缺少这种用于 node.js 访问的工厂?是否有解决方法(例如为您的项目添加 node.js 插件)?例如:http://jltrem.com/blog/2013/02/06/simple-example-node-js-addon-to-glue-c-to-javascript/ 问候,tecsurf