点击小程序里打开App按钮,唤醒app(冷启动)。
会执行这个系统方法
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
微信SDK的这个方法返回YES
但是onReq代理未执行
另外App在后台的时候onReq是会执行的。
搜索了一下这个问题,基本都没有明确的回复或解答。
这个是bug,还是设计本身就是这样的。
友盟可以做到小程序冷热启动都可以接受到传过来的参数!!!Ta是怎么办到的?合作关系有特殊的权限吗?
我遇到了同样问题
handleOpenURl 方法在不同地方调用过多次,多个不同的插件使用了微信,微信拉起APP传参是使用iOS的剪切板
然而,微信在handleOpenURL调用时,会清空剪切版,导致第二次调用handleOpenURL的方法返回false,同时也无法监听到回调。相关错误日志如:
微信wx1og:Error:data[{length=0,bytes=0x}Jisempty 微信wx1og:Error:idpasteisnil 微信wx1og:Error:pasteDictionaryisnil 微信wx1og:Error:dictisnil 微信wx1og:appdataisnil,ur1:wx72a3+969b0a54413://platformId=wec
解决方法是通过保存剪切版信息,向下传递
let board = UIPasteboard.general.items // 微信handle使用剪切板之后会清空 super.application(app, open: url, options: options) // 为了后续的微信handle可以正常使用,重新复制剪切板 UIPasteboard.general.setItems(board) WXApi.handleOpen(url, delegate: self)
现在2022年了,2年了,这个问题有解吗,不调用onReq这个方法
log : WXApi 注册成功
log : wxlog:send req[<WXLaunchMiniProgramReq: 0x280730900>], appID:wxf3434b6998bc63c4, universalLink:https://m.haoshugongdu.com/open_app/, sdkVersion:1.8.7.1
log : wxlog:LaunchMiniProgram todata extDic=(null)
log : wxlog:set property list
log : wxlog:launch app with ul only success
log : wxlog:launch app with universal link, ret:1
log : wxlog:req:<WXLaunchMiniProgramReq: 0x280730900>, cid:c4c7f58084b5bd95a9f260f1965394de995cbd6d
log : wxlog:Error:pasteData[(null)] is empty
log : wxlog:Error:pasteDictionary is nil
log : wxlog:Error:dict is nil
log : wxlog:appdata is nil, url:wxf3434b6998bc63c4://platformId=wechat
log : wxlog:send req[<WXLaunchMiniProgramReq: 0x28079b700>], appID:wxf3434b6998bc63c4, universalLink:https://m.haoshugongdu.com/open_app/, sdkVersion:1.8.7.1
log : wxlog:LaunchMiniProgram todata extDic=(null)
log : wxlog:set property list
log : wxlog:launch app with ul only success
log : wxlog:launch app with universal link, ret:1
log : wxlog:req:<WXLaunchMiniProgramReq: 0x28079b700>, cid:5622d765cd6402ab23302808e62f3d0eed1f49ae
这个日志是我App拉起小程序,以及在小程序点击返回App按钮的打印的日志,并没有调用- (void)onResp:(BaseResp *)resp
我的解决方案是:收到三方启动url后,延迟一下执行[WXApi handleOpenURL:url delegate:self];然后就走onReq:(BaseReq *)req方法了
代码如下:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options
{
// 微信回调,字符串是自己在微信注册时的appkey
if ([url.absoluteString containsString:@"wxXXXXXXXXXXXXXXX"]) {
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(.35 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[WXApi handleOpenURL:url delegate:self];
});
return YES;
}
return YES;
}
无解这个问题 大家都遇到了
我也遇到这个问题了,错误日志已上传,时间为2020-08-11 17:10,麻烦跟进以下
遇到这种情况,没有找到原因和解决方案
WXApiManager.mm:41 log : wxlog:Error:pasteData[(null)] is empty
WXApiManager.mm:41 log : wxlog:Error:pasteDictionary is nil
WXApiManager.mm:41 log : wxlog:Error:dict is nil
WXApiManager.mm:41 log : wxlog:appdata is nil, url:wxf3434b6998bc63c4://platformId=wechat
返回的并不是YESorNO,而切无法回调onResp:
你好,麻烦再重现一次,在手机微信那里上传下日志: 我->设置->帮助与反馈右上角有个上报日志的入口,提供一下微信号,复现问题的详细时间点(如:2020-4-10 10:10)
有遇到相关问题的朋友吗?互相讨论下。