iOS微信分享不触发回调函数onResp()解决方法

此问题最近困扰了我三天,检查项目代码与网上方法对照,并没有发现不对的地方,跟断点调试,只发现微信分享后微信端并没有给应用反馈,onResp()没有触发。


问题描述:

线上iOS用户在第三方应用点击微信分享,无法执行分享后的操作。
用iPhone 5c(iOS 7)测试,跳转微信端分享完成后闪退到系统菜单界面,并没有返回第三方应用。微信分享实际已经完成,onResp()方法并没有回调。


原因:

查资料发现,由于微信SDK对iOS7支持性的问题所致。微信早期就发生过在iOS7平台上无法进行微信分享的问题。按照iOS微信SDK接入指南所说的,将所有参数语句配置完成后,依然无法调用onResp()方法。

解决办法:

由于问题是出现在线上的,极大多数iOS用户系统版本都在9以上,依然不回调onResp()。分析原因,微信SDK升级后对iOS 9以上平台放弃了两个旧的接口导致无法得到app的url路径。
(旧方法建议保留,老版本iOS还是会调用就方法)

//被废弃的方法如下

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url

sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;

//替换的新方法

改用方法为- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary*)options;

在新方法中加入

[WXApi handleOpenURL:url delegate:self] //向微信注册app的url

需要在Xcode项目属性的Info面板中设置URL Types。

3月17日补充:
后来发现iOS 7 微信分享后闪退的原因了

微信分享后回调到了主干版本客户端,导致大陆分支没收到微信的反馈。(这问题实在是太傻逼了。。。)

你可能感兴趣的:(微信SDK)