iOS Universal Links(通用链接)详细教程

一:Universal Links是用来做什么的?

iOS9.0推出的用于应用之间跳转的一种机, 通过一个https的链接启动app。如果手机有安装需要启动的app,可实现无缝跳转。如果没有安装,会打开网页。

实现场景:微信链接无缝跳转App, 网页链接无缝跳转App

二:Universal Links实现步骤

移动端iOS实现:

1:找到app的Bundle Identifler 和Team ID并记录

Bundle Identifler所在的位置 :

图1

Team ID所在的位置:打开https://developer.apple.com/account页面,登录apple 开发者账号,划到页面下方,找到会员资格详细信息: 

图2

 2:app添加Associated Domains:

图3

图4
图5

Associated Domains格式:applinks:域名  例如:applinks:developer.apple.com 

服务端实现:

1:创建apple-app-site-association文件

 新建一个txt文件,命名:apple-app-site-association ,将以下json文本复制进去,并修改teamID和Bundle Identifler。

{"applinks": {"apps": [],"details": [{"appID": "YourTeamID.YourBundleIdentifler","paths": ["*"]}]}
}

details:是数组,可以有多个数据,即可支持多个app

appID:team ID和Bundle Identifler组成,中间有个.

paths:可以指定路径,*是通配符,即该域名下的所有路径都可以访问app

保存以后,txt文件需要去掉后缀。

注意事项:文件需要存放在后台的根目录下的.well-known,最终的访问路径是:https://域名/.well-known/apple-app-site-association文件url在safari打开,右击选择检查元素,如下:

图6

三:测试

测试方法1:

重新安装一个最新的,并启动一下app。在浏览器输入Associated Domains的域名和apple-app-site-association文件中的允许路径,例如上文中的域名是developer.apple.com,path是*,所以在浏览器输入https://developer.apple.com(也可以输入https://developer.apple.com/123 因为path写的全路径,所以只要是https://developer.apple.com开头的都可以识别),就可以看到下方效果(safari自动弹出打开app的弹框,点击打开可以跳转到app):

测试方法2:

在备忘录输入https://developer.apple.com,长按该链接,可以弹出app选项(点击在app中打开,可以直接跳到app里),如下图:

四:问题统计

上述的Universal Links配置步骤完成还是无法跳转?

        第一步:核对apple-app-site-association文件的appID的Bundle Identifler 和Team ID是否正确。

       第二步:app是否是重新安装,或者第一次启动,要确保app下载了apple-app-site-association,后台可看到请求日志

       第三步:核对apple-app-site-association文件的格式和内容可参考图6,apple-app-site-association文件相关配置可让后台技术人员查阅相关资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/619324.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何开发测试框架?

基本概念 库 英文单词叫Library,库是由代码集合成的一个产品,供程序员调用。面向对象的代码组织形成的库叫类库,面向过程的代码组织形成的库叫函数库。 框架 英文单词叫Framework,框架是为解决一个或一类问题而开发的产品&#x…

JAVA进化史: JDK15特性及说明

JDK 15于2020年9月发布。这个版本引入了一些新特性和改进,以下是其中一些主要特性 JEP 339:引入了EdDSA数字签名算法 引入了EdDSA数字签名算法,以提供更安全和高效的数字签名机制。 // 使用EdDSA进行数字签名 KeyPairGenerator keyGen KeyPairGenera…

视频剪辑达人分享:批量减片时时长并调整播放倍速的技巧

在视频剪辑中,经常要对多个视频片段进行时长调整和播放倍速的修改。如果一个个手动操作,不仅效率低下,还容易出错。如何快速批量处理这些片段呢?现在一起来看看云炫AI智剪批量减片时长并调整播放的具体步骤。 原视频和剪辑后的视…

蓝桥杯C组-填充-贪心

点击此处查看原题​​​​​​​ *思路:首先要求 00 11 尽可能的多,所以尽可能多的多配对,配对只在i , i 1之间发生,所以只需要关注str[i] 和 str[i 1]即可,如果str[i] str[i 1] ,那么一定配对&#x…

Linux系统SSH远程管理服务概述

目录 一.SSH协议 1.定义 2.优点 (1)加密 (2)压缩 3.SSH的客户端与服务端 (1)客户端 (2)服务端 4.原理 5.实验:使用ssh远程登录 二.OpenSSH服务器 1.概念 2.…

通过 C++/WinRT 将值装箱到 IInspectable 和对其取消装箱

备注 不仅可对标量值进行装箱和取消装箱,而可使用 winrt::box_value 和 winrt::unbox_value 函数对大多数类型的数组进行这类操作(枚举数组除外) 。 只能使用 winrt::unbox_value_or 函数对标量值取消装箱。 IInspectable 接口是 Windows 运…

C++ 并发编程 | 并发世界

一、C 并发世界 1、什么是并发? 并发是指两个或更多独立的活动同时发生,计算机中的并发指的是,在单个系统里同时执行多个独立的活动

CSS3动画效果详解

CSS3动画 在CSS3中,animation属性用于实现元素的动画。 animation属性跟transition属性在功能实现上是非常相似的,都是通过改变元素的属性值来实现动画效果。但是,这两者实际上有着本质的区别 对于transition属性来说,它只能将…

前缀数组-截断数组

3956. 截断数组 - AcWing题库 不愧为acwing的中等题,细节是真的多,又又又阴沟翻船了。 题目要我们分成三个数组,求解又集几种分法。普遍思路是首先求解数组总和,除以3求的平均值。 第一个注意点:如果数组给的数的数…

PADS 改变图纸和图页边界大小

PADS 改变图纸和图页边界大小 有时候画一画原理图发现画布不够用了,可改变图纸大小,对应的改变图页边界 若图页边界怎么选择都改变不了,可将途中图页边界删除,重新加载 选择对应的图页边距就好啦 分类: PADS

重学Java 4 进制转换和位运算

天赋不好好使用的话,可是会被收回的哦 ——24.1.13 一、进制转换 1.常用的进制 2.十进制和二进制之间的转换 1.十进制转二进制 辗转相除法——循环除以2,取余数,除到商为0为止,除完后,由下往上,得出换算后…

一文搞懂,Python网络爬虫

网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。从功能上来讲,爬虫一般分为数据采集&…

虚拟主机 如何上传大于100M的文件 php网站程序

问题 虚拟主机上传文件大小限制100m, 有时会遇到非常大的文件上传,上传过程中耗时非常久, 可能服务器的限制设置了上传文件尺寸,返回“413 request entity too large” 整体逻辑 前端:上传文件时,进行文…

P1079 [NOIP2012 提高组] Vigenère 密码

一起来交流编程吧【CSDN app】: http://qm.qq.com/cgi-bin/qm/qr?_wv1027&kx9pL9ccIHGKNLE0CWviAqQ_q6HzxomLW&authKeyVslKe623ptw8VRepda%2Bh0Ttr8Ruz8v%2FBW5HpVzyTWU7ECwpHIZpULMj6qIHYZBVb&noverify0&gro [NOIP2012 提高组] Vigenre 密码 题…

R语言【paleobioDB】——pbdb_collection():从PBDB获取单个采集号的基本信息

Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新,该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后,执行本地安装。 Usage pbdb_collection (id, ...) Arguments 参数【…

C语言——内存函数【memcpy,memmove,memset,memcmp】

📝前言: 在之前的文章C语言——字符函数和字符串函数(一)中我们学习过strcpy和strcat等用来实现字符串赋值和追加的函数,那么除了字符内容,其他的数据(例如整型)能否被复制或者移动呢…

【代码随想录】刷题笔记Day51

前言 周六刷题,闻所未闻吧兄弟,不用开组会简直太爽啦 300. 最长递增子序列 - 力扣(LeetCode) 子序列系列问题,用动态规划解决dp[i]含义 表示i之前包括i的以nums[i]结尾的最长递增子序列的长度递推公式 j从0到i-1各个…

揭示量化投资的神秘面纱:深入了解量化交易的核心原理!

随着科技的进步和大数据时代的到来,量化投资已成为金融市场的热门话题。但很多投资者对于量化投资的概念仍感神秘,不清楚其背后的原理和运作机制。本文将深入揭示量化投资的神秘面纱,帮助读者了解量化交易的核心原理。 量化投资的定义与起源 …

Docker 镜像

1、联合文件系统 UnionFS(联合文件系统):Union文件系统〈UnionFS)是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several dir…

CCF认证+蓝桥杯习题训练

贪心 *上取整公式* *代码展示* #include <iostream> #include <cstring> #include <algorithm>using namespace std;const int N 1e5 10;typedef long long LL;int v[N] , a[N];int main() {int n , d;cin >> n >> d;for(int i 1 ; i < n…