在Appdelegate.m中
//#define __IPHONE_10_0 100000
#if __IPHONE_OS_VERSION_MAX_ALLOWED > 100000
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
{
//6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响。
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url options:options];
if (!result) {
// 其他如支付等SDK的回调
}
return result;
}
#endif
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
//6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation];
if (!result) {
// 其他如支付等SDK的回调
}
return result;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];
if (!result) {
// 其他如支付等SDK的回调
}
return result;
}
如果还没有执行 确定你的 URL Schemes是否一致
附加
针对分享之后留在微信的情况
首先是点击分享标签时
[UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
//在这里做一个表示符
[[NSUserDefaults standardUserDefaults]setBool:YES forKey:@"isShare"];
//正常的分享流程
}
然后就是分享回调里
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options{
//能走到这里表示用户选择的是直接返回程序
//那么直接处理回调,删掉标识符
[NSUserDefaults standardUserDefaults]removeObjectForKey:@"isShare"];
//处理回调
}
那么如果用户选择留在微信,我们就需要在
- (void)applicationDidBecomeActive:(UIApplication *)application
里面对标识符进行操作了,包括删除标识符,回调操作等等
当然可能操作并不是在appdelegate里进行的,我们可以在需要操作的地方对BecomeActive进行监听
//监听
1.[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil];
2.//监听处理
- (void)applicationDidBecomeActive:(NSNotification *)notification {
//删掉标识符
[NSUserDefaults standardUserDefaults]removeObjectForKey:@"isShare"];
// 回调操作
}
3.[[NSNotificationCenter defaultCenter] removeObserver:self];//移除监听