iOS微信受权登陆+Universal Link(通用连接)

简介

随着iOS和微信SDK版本的更新,有变化。 -html

新版本,须要配置Unuversal Links。没办法,填坑工做开始。web

Unuversal Links介绍

Seamlessly link to content inside your app, or on your website in iOS 9 or later. With universal links, you can always give users the most integrated mobile experience, even when your app isn’t installed on their device. Universal Link(通用连接)是苹果在iOS9推出的,一种可以方便的经过传统HTTPS连接来启动APP的功能,能够使用相同的网址打开网址和APP。浏览器

看起来就是一条普通的https连接,固然是咱们在该连接域名根目录配置过的一个连接,也能够在该连接中放置对应的H5页面。当用户的点击该连接,只要手机中安装了支持该连接的APP就会直接进入到APP中。若是没有安装APP则会跳转到Safari浏览器中,展现H5页面。对用户来讲则是一个无缝跳转的过程。服务器

详细介绍:www.cnblogs.com/guoshaobin/…微信

配置Unuversal Links

其实要作的很简单,可是坑多。markdown

1.苹果开发者帐号打开配置

-

2.XCode工程配置

打开Associated Domains开关,将Universal Links域名加到配置上app

-

若是没有Associated Domains选项,则添加。 -less

配置URL Types -ide

配置info.plist,“LSApplicationQueriesSchemes“栏添加 -工具

3.配置JSON文件

建立一个空白文件(必须纯文本,命名为apple-app-site-association,去除后缀名)。这里建议让后台人员在其本地建立,避免文件传输时,文件自动被更改格式、后缀自动添加等问题。

内容以下

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "XXXXXXX.OOOOOOO",
                "paths": [ "*" ]
            }
        ]
    }
}
复制代码

说明:XXX表示苹果帐号的团队ID,OOO表示项目的BundleID。

4.后台服务器配置

把文件apple-app-site-association,放置在服务器的根目录(不要问我,让后台本身去理解),而后让他提供一个https的url地址,格式是“正式域名/apple-app-site-association”,如:www.baidu.com/apple-app-s…

达到的效果是,浏览器打开这个地址,能够下载这个文件。另外用GET请求这个地址,返回文件的JSON内容(这里经过工具Postman进行试验) -

注意,返回的数据,不能存在乱码,不然说明JSON文件有问题。

5.微信开放平台配置

填写正式域名。

6.初始化代码
// 微信SDK注册,universal link
[WXApi registerApp:APP_ID universalLink: UNIVERSAL_LINK];
复制代码

补充说明:

若是后台提供的url地址是https://www.baidu.com/apple-app-site-association。那么, Associated Domains中填写applinks:www.baidu.com, 代码注册方法及微信开放平台中都填https://www.baidu.com/

微信登陆

微信文档中,重写的方法,适用于iOS10之前。

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return  [WXApi handleOpenURL:url delegate:self];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    return [WXApi handleOpenURL:url delegate:self];
}
复制代码

添加方法

-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options{
    return [WXApi handleOpenURL:url delegate:self];
}
复制代码

其余资料

www.jianshu.com/p/bb8429cd7… www.jianshu.com/p/6a25b1857… www.jianshu.com/p/c9c09992a…

www.jianshu.com/p/ab50bdaec… www.jianshu.com/p/8e8840dcd…

相关文章
相关标签/搜索