Appdelegate.m中处理多个handleopenURL

类似的情况如下:

return  [WeiboSDK handleOpenURL:url delegate:self];
 
return [FBAppCall handleOpenURL:url
              sourceApplication:sourceApplication
                fallbackHandler:^(FBAppCall *call) {
                     
                    NSLog(@"In fallback handler");
                     
                }];

facebook要调用我的handleOpenUrl,但是Sina Weibo也要调用,导致的结果是如何进行区分,然后进行不同的url调用。

其实很简单,对于这样的接口其实在ios中有过scheme的设置,完全可以判断url的前缀是否含有你自己设置的前缀,可以如下

NSString *string =[url absoluteString];
 
if ([string hasPrefix:@"微博url的前缀"])
{
     return [WeiboSDK handleOpenURL:url delegate:self];
}
else if ([string hasPrefix:@"Facebook的url的前缀"])
{
    return [WXApi handleOpenURL:url delegate:self];
}
原文链接: http://www.gowhich.com/blog/526

不过我认为有更好的办法,各个微博应该会处理自己的handleOpenURL

bool handleOpenURL(URL *url)
{
    for (auto weibo : weibos) {
        if (weibo->handleOpenURL(url)) {
            return true;
        }
    }
    
    return false;
}



你可能感兴趣的:(微博,weibo,handleopenURL)