Zrocky

Stay Hungry, Stay Foolish

Think Different


欢迎与我交流

iOS项目使用Universal Links

使用Universal Links来取代Scheme的跳转App功能,有更好的安全性(第三方不能使用这种方法跳转你的App),且不会弹出跳转确认框。可以查看官方文档 获取更详细的介绍。

要使用Universal Links,首先需要一个网站,该网站必须使用https协议(存疑,我使用http跳转也能成功),然后按以下步骤操作:

  1. 创建一个无后缀文件,文件名为apple-app-site-association,写入以下信息:

    {
        "applinks": {
            "apps": [],
            "details": [
                {
                    "appID": "9JA89QQLNQ.com.apple.wwdc",
                    "paths": [ "/wwdc/news/", "/videos/wwdc/2015/*"]
                },
                {
                    "appID": "ABCD1234.com.apple.wwdc",
                    "paths": [ "*" ]
                }
            ]
        }
    }
    

    其中appID是一个App的唯一标识,写入格式为{TeamID}.{App BundleIdentifier} path是网站的目录,可写入多个,*作为通配符使用

  2. apple-app-site-association文件上传至你网站的根目录或者.well-known目录,上传成功,此文件应可以直接下载(该文件配置好后,需要等待一段时间才会生效)
  3. 在开发证书页面中勾选应用ID的Associated Domains权限,并正确安装该应用的Profile文件

    image-20200325143312973

  4. 在Xcode中配置应用的Associated Domains,前缀必须是applinks:,接着加上你的网站域名

    image-20200325143736941

    网站域名可使用通配符*,例如*.apple.com

    域名匹配规则是取较长的字符串,所以*.apple.com是匹配不到apple.com的,这点需要注意

    如果有多个网站,则可以添加多条

  5. 当从网站跳转App时,iOS将会通知App,并且传递了一个NSUserActivity对象,该对象包含了用户正在访问的web链接webpageURL,实现AppDelegate的代理方法,可以拦截到该事件:

     func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
            print("current url is \(userActivity.webpageURL)")
     }
    
最近的文章

map与flatMap和compactMap的区别

Swift在4.1版本之前只有map和flatMap函数,之后引入了compactMap函数,但是compactMap函数并不是实现新的功能,而是用来解决flatMap函数功能不唯一的问题。原先flatMap函数既有去除nil的功能,也能将多维数组降维成一维,这违背了函数设计的单一职责原则,所以 Swift 4.1以后,使用flatMap函数只解决降维问题,去除nil的功能由新引入的compactMap函数完成。map函数逐个处理数组中的元素,并生成新数组complactMap函数和map...…

Swift 函数继续阅读
更早的文章

Mac设置Git代理

设置git代理: 设置github.com走代理 编辑~/.gitconfig文件,添加以下代码: [https "https://github.com"] proxy = socks5://127.0.0.1:1086 设置github.com走IP(效果未验证,可跳过此步骤) 编辑/etc/hosts文件,添加以下代码: 151.101.72.249 http://global-ssl.fastly.Net192.30.253....…

Mac Git继续阅读