iOS开发UniApp原生插件时,JS调用原生代码,原生代码执行完毕调用JS回调方法(WXCallBack),不执行。控制台报错如下:
<Weex>[error]WXBridgeContext.m:1153, jsLog: [JS Framework] Failed to execute the callback function:
- TypeError: plus.postMessage is not a function. (In 'plus.postMessage({type:'requireNativePluginCallback',data:{id:parseInt(a.replace('CALLBACK_','')),ret:d,keepAlive:!!f}},b)', 'plus.postMessage' is undefined) __ERROR
代码片段:
JS:
tempPlugs.payWith('裤子', 2, '50.00', 'skuStr', result => {
uni.showModal({
title:'结果',
content:'测试'
});
this.result = result;
});
iOS:
- (void)payWith:(NSString )name quantity:(NSInteger)quantity price:(NSString )priceStr sku:(NSString )skuStr callback:(WXCallback)callback {
[[YSPaypalHelper sharedInstance] payWith:name quantity:quantity price:priceStr sku:skuStr callback:^(NSDictionary _Nonnull ret) {
if (callback) {
callback(ret);
}
}];
}
r***@icloud.com (作者)
我用之前的版本,本地调试,回调时执行的,用最新的SDK,就报错,云打包也报错。
确定跟1.9的SDK没有关系吗?
2019-04-16 15:51
r***@icloud.com (作者)
我下载了最新的richalert demo,运行后,点击进入vue界面,回调不执行,报同样的错误:
<Weex>[error]WXBridgeContext.m:1153, jsLog: [JS Framework] Failed to execute the callback function:
2019-04-16 16:08
DCloud_iOS_XHY
回复 r***@icloud.com:刚刚确认了,最新的sdk有bug,你可以在 manifest.json 中 "app-plus" 节点下添加 "usingComponents" : true, 然后在重新编译项目即可解决这个问题
2019-04-16 18:03
r***@icloud.com (作者)
回复 DCloud_iOS_XHY:多谢!
2019-04-16 18:37
r***@icloud.com (作者)
回复 DCloud_iOS_XHY:已经可以了
2019-04-16 18:37
lori
回复 DCloud_iOS_XHY:我使用了usingComponents 引起了其他地方的报错,请问有别的办法可以解决这个bug吗?另外新的sdk什么时候可以发布?
2019-04-17 16:23
DCloud_iOS_XHY
回复 lori:麻烦把新的报错详细描述一下,我们排查一下
2019-04-17 16:28