NativeScript 插件在外部 ng2 项目(不是演示)中崩溃
NativeScript plugin crashes in external ng2 projects (not the demo)
有问题的插件是:https://github.com/sean-perkins/nativescript-opentok/tree/delegate-exploration。如果您 npm install 并将构建版本设置为 1.4.4
,您将获得针对此错误的最新测试版本。
该插件遇到两个问题:
起初,无法识别 {N} 的新构造函数声明样式,因此我不得不退回到老派的 Class.alloc().initWith
声明样式。我相信这实际上可能与#2 有关。
更新构造函数后,同一行代码将失败:[__NSCFNumber length]: unrecognized selector sent to instance 0xb00000002b879aa2
.
有问题的代码是:
public static initWithApiKeySessionIdToken(apiKey: string, sessionId: string, token:string): TNSOTSession {
let instance = <TNSOTSession>TNSOTSession.new();
instance.events = new Observable();
instance.session = OTSession.alloc().initWithApiKeySessionIdDelegate(apiKey, sessionId, instance);
let errorRef = new interop.Reference();
instance.session.connectWithTokenError(token, errorRef);
if(errorRef.value) {
console.log(errorRef.value);
}
return instance;
}
class (TNSOTSession
) 扩展了 NSObject
并实现了 OTSessionDelegate
的协议,它应该根据 {N} 文档维护选择器实例:
"Methods that are overridden will infer their signatures from the base class or protocols they implement."
参考:https://docs.nativescript.org/runtimes/ios/how-to/ObjC-Subclassing
如需查看OpenTok的iOS API文档,请参考:https://www.tokbox.com/developer/sdks/ios/reference/Classes/OTSession.html.
感谢任何可以帮助我在这个问题上取得进展的人。该演示完美运行。该问题是在 {N} + Angular 2 个测试项目中发现的。
对于遇到此问题的任何人,请确保如果您的插件有一个数字 API 键或与此相关的任何值,那应该是一个字符串...一定要转换它作为带有 .toString()
的字符串。我的整个问题都集中在那个小细节上。
有问题的插件是:https://github.com/sean-perkins/nativescript-opentok/tree/delegate-exploration。如果您 npm install 并将构建版本设置为 1.4.4
,您将获得针对此错误的最新测试版本。
该插件遇到两个问题:
起初,无法识别 {N} 的新构造函数声明样式,因此我不得不退回到老派的
Class.alloc().initWith
声明样式。我相信这实际上可能与#2 有关。更新构造函数后,同一行代码将失败:
[__NSCFNumber length]: unrecognized selector sent to instance 0xb00000002b879aa2
.
有问题的代码是:
public static initWithApiKeySessionIdToken(apiKey: string, sessionId: string, token:string): TNSOTSession {
let instance = <TNSOTSession>TNSOTSession.new();
instance.events = new Observable();
instance.session = OTSession.alloc().initWithApiKeySessionIdDelegate(apiKey, sessionId, instance);
let errorRef = new interop.Reference();
instance.session.connectWithTokenError(token, errorRef);
if(errorRef.value) {
console.log(errorRef.value);
}
return instance;
}
class (TNSOTSession
) 扩展了 NSObject
并实现了 OTSessionDelegate
的协议,它应该根据 {N} 文档维护选择器实例:
"Methods that are overridden will infer their signatures from the base class or protocols they implement."
参考:https://docs.nativescript.org/runtimes/ios/how-to/ObjC-Subclassing
如需查看OpenTok的iOS API文档,请参考:https://www.tokbox.com/developer/sdks/ios/reference/Classes/OTSession.html.
感谢任何可以帮助我在这个问题上取得进展的人。该演示完美运行。该问题是在 {N} + Angular 2 个测试项目中发现的。
对于遇到此问题的任何人,请确保如果您的插件有一个数字 API 键或与此相关的任何值,那应该是一个字符串...一定要转换它作为带有 .toString()
的字符串。我的整个问题都集中在那个小细节上。