Native.js在一些场景中,很方便,跨平台。按照原生代码翻译即可。
经过实测,在回调和代理的参数有如下限制:
1. 代理回调中只有第一个参数有效,其他参数均为undefined。
举例:
let delegate = plus.ios.implements('connection:', {
// 当接收到服务器返回的数据时会调用
'connection:didReceiveData:': function (connection, data) {
console.log('connection=', connection);
console.log('data=', data);
},
});
输出结果:
connection=[Object] {"__TYPE__":"JSBObject","__UUID__":"native_86","className":"NSURLConnectionInternalConnection"}
data=undefined
2. Block回调中所有参数均为undefined。
举例:
self.task = plus.ios.invoke(self.session, 'dataTaskWithRequest:completionHandler:', self.request, function (data, response, error) {
console.error('data=', data);
console.error('response=', response);
console.error('error=', error);
});
输出结果:
data=undefined
response=undefined
error=undefined
问题:
-
Native.js功能为何不优化支持/修复正确回调参数的问题?
-
是否有相关的计划?
补充:
尽管目前uni-app插件开发比较方便,且很强大。但开发插件对环境要求比较多,如果能够直接Native.js实现的,Native.js的开发效率高很多。且人人都可以写。
因此强烈建议优化一下回调参数问题。
HEDA (作者)
上述回调参数问题都是iOS本身的限制吗?
2020-07-27 16:23