微信使用Universal Links后,设置自检函数都通过,但是微信登录APP不出现授权的页面,。
报错wxlog:Error:set token fail, errCode:4, errLog:wx token[] or contextId[(null)] is nil!
我用的是友盟,集成友盟的微信完整版后,以前写的一些方法是在这里
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
这个方法里以前怎么写,现在也不用动。需要新写个方法
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
NSLog(@"userActivity : %@",userActivity.webpageURL.description);
if (![[UMSocialManager defaultManager] handleUniversalLink:userActivity options:nil]) {
// 其他SDK的回调
}else{
return [WXApi handleOpenUniversalLink:userActivity delegate:[WXApiManager sharedManager]];
}
return YES;
}
WXApiManager 是我写的一个封装类,如果你没有这个类。就不这样写。
如果你原来在- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
这个方法里写的关于微信是这样的。return [WXApi handleOpenURL:url delegate:self];
那么这句话 return [WXApi handleOpenUniversalLink:userActivity delegate:self];的后边的代理也写self
AppDelegate 里面写 WXApiDelegate这个,遵循协议。
反正[WXApi handleOpenUniversalLink:userActivity delegate:self] 后边的代理和原来 [WXApi handleOpenURL:url delegate:self];这个后边的代理保持一致。
这是我遇到的问题,并且解决好了的,网上看也有一些人遇到类似的,都在问。就写了下来。写的可能有点乱,有哪点不清楚的,可以回复我,我看到会回复你们。