1. 程式人生 > >iOS微信分享不觸發回撥函式onResp()解決方法

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 微信分享後閃退的原因了

微信分享後回撥到了主幹版本客戶端,導致大陸分支沒收到微信的反饋。(這問題實在是太傻逼了。。。)