关于IOS同时包含QQ登陆、微信登陆进行打开第三方应用时处理-doc文件怎样打开

现在越来越多的IOS应用接入了第三方的授权登陆,比如是Facebook、微信登陆、QQ登陆,在IOS上打开第三方的应用和Android上有点不同。如果需要实现调用第三方应用,ios需要在我们的两个函数上实现打开我们的操作。如果对我的文章有兴趣,欢迎订阅我的头条号:一点热,yeehot.com

这两个函数就是:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

returnYES;

}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{

returnYES;

}

1、对于我们的微信登陆和QQ登录,我们一般处理把SDK放进带我们的代码中,还需要配置我们的URL scheme

在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id

关于IOS同时包含QQ登陆、微信登陆进行打开第三方应用时处理

2、对于微信来说,我们还需要把应用注册到微信

//向微信注册

[WXApiregisterApp:@"wx你的微信ID"withDescription:@"demo 2.0"];

//向微信注册支持的文件类型

UInt64 typeFlag = MMAPP_SUPPORT_TEXT | MMAPP_SUPPORT_PICTURE | MMAPP_SUPPORT_LOCATION | MMAPP_SUPPORT_VIDEO |MMAPP_SUPPORT_AUDIO | MMAPP_SUPPORT_WEBPAGE | MMAPP_SUPPORT_DOC | MMAPP_SUPPORT_DOCX | MMAPP_SUPPORT_PPT | MMAPP_SUPPORT_PPTX | MMAPP_SUPPORT_XLS | MMAPP_SUPPORT_XLSX | MMAPP_SUPPORT_PDF;

[WXApiregisterAppSupportContentFlag:typeFlag];

3、发起调用

SendAuthReq* req =[[SendAuthReqalloc ] init ] ;

req.scope = @"snsapi_userinfo,snsapi_base" ;

req.state = @"yeehotinfo" ;

//第三方向微信终端发送一个SendAuthReq消息结构

[WXApi sendAuthReq:req viewController:self delegate:self];

4、这是我们打开第三方的应用配置就需要我们注意了。由于微信登陆和QQ登陆都需要我们的返回

return [TencentOAuth HandleOpenURL:url]和return [WXApi handleOpenURL:url delegate:self],那这里如何才能够处理两个结果,这里我们需要对刚刚配置的URL_SCHEMA进行判断。

如果是QQ的路径我们返回QQ的打开处理,如果是微信的路径,我们打开微信的路径。

利用我们的APPID和NSOrderedSame进行判断。


#define QQ_OPEN_SCHEMA @"tencent1111222"

#define WX_OPEN_ID @"wx21e324324324"

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

if ([url.schemecompare:QQ_OPEN_SCHEMA] == NSOrderedSame) {

return [TencentOAuth HandleOpenURL:url];

}

else if([url.schemecompare:WX_OPEN_ID] == NSOrderedSame){

return [WXApi handleOpenURL:url delegate:self];

}

returnYES;

//

}

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{

;

if ([url.schemecompare:QQ_OPEN_SCHEMA] == NSOrderedSame) {

return [TencentOAuth HandleOpenURL:url];

}

else if([url.schemecompare:WX_OPEN_ID] == NSOrderedSame){

return [WXApi handleOpenURL:url delegate:self]

}

returnYES;

}

知识拓展,有时我们还会打开其他的应用,我们可以这样来使用:

比如我们要打开电话

[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"tel://1380013800"]];

又或者打开浏览器

[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"http://www.yeehot.com"]];

打开SMS

[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"sms://1380000"]];

今天的课程就说到这里,欢迎继续关注我的头条号:一点热,yeehot.com

欢迎大家收藏与转发,如果转载到其它网站,请与我联系.

推荐阅读