iOS微信分享不觸發回撥函式onResp()解決方法
阿新 • • 發佈:2019-01-09
此問題最近困擾了我三天,檢查專案程式碼與網上方法對照,並沒有發現不對的地方,跟斷點除錯,只發現微信分享後微信端並沒有給應用反饋,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 微信分享後閃退的原因了
微信分享後回撥到了主幹版本客戶端,導致大陸分支沒收到微信的反饋。(這問題實在是太傻逼了。。。)