iOS分享到微信,配置Universal Links,并从微信打开app,跳转到指定界面
iOS分享到微信之后,需要从微信浏览器直接打开app,跳转到指定界面,这个时候最主要的就是分以下几步(微信sdk集成就不说了)
1.配置Universal Links
Universal Links是iOS新系统出来后通用链接,用于在第三方浏览器直接打开app,没下载的时候就会跳转到下载页面
1.1.开启App项目的Associated Domains功能:
苹果开发者->Account->Overview->Certificates, Identifiers & Profiles->Identifiers->选中对应的App项目的Bundle Identifier的Identifiers->开启Associated Domains功能->新建该Identifiers最新的Profiles文件->下载该Profiles文件并在Mac上安装这个文件(双击文件安装,这里必须使用最新的Profiles文件打包才有效果,如果之前有,需要删除后重新安装Profiles文件)

1.2.Xcode中添加Associated Domains:

Associated Domains可以设置多个,格式是:applinks: + 服务器域名(域名即可,例如完整链接是https://test.uubx.com/,那这里就是applinks:test.uubx.com);Associated Domains必须已applinks:开头。这里后台配置好第三部的apple-app-site-association后去添加即可
1.3创建apple-app-site-association文件
(1)文件名必须为:apple-app-site-association,直接复制
(2)文件不能跟后缀,是纯文本
(3)文件必须放在服务器根目录或者.well-known目录下,这是苹果规定的,具体请教后端的同事
创建步骤:
a、打开系统自带的文本编辑器,进入偏好设置,如图:

b、进入打开和存储,关闭给纯文本文件添加.txt扩展名选项,如图:

c、选择格式,切换为制作纯文本,如图:

d、编辑内容,先复制以下内容到编辑器,并看注释
{"applinks": {"apps": [],"details": [{"appID": "AAAAA.BBBBB","paths": ["/path1/*"]},{"appID": "CCCCC.DDDDD","paths": ["/path1/*","/path2/*","/path3/*"]},{"appID": "EEEEE.FFFFF","paths": ["/*"]}]}
}
注释:
(1)格式是固定的
(2)apps为空就行,不需要更改
(3)支持多个App共用一个apple-app-site-association文件(即一个域名有多个App在使用)
(4)多个App共用,只需要在上述配置details中添加
(5)details为一个list,切记注意格式
(6)details下一个字典为一个App,多个App添加多个字典就行,注意,号隔开
(7)details下字典格式固定,注意别更改
(8)appID格式为:Team ID+.+Bundle Identifier,即上述配置中,AAAAA、CCCCC、EEEEE为Team ID,BBBBB、DDDDD、FFFFF为Bundle Identifier,注意Team ID与Bundle Identifier中间用”.“链接
(9)Team ID查找,登录开发者账号,进入账户,进入会员资格详细信息,找到团队 ID,即为Team ID,如图
image.png
(10)paths是一个list,表示路径,一个App可以配置多个path,也可以直接使用/*
(11)/* 表示通用链接,即只要域名正确,可以直接命中,一般不建议直接使用/* ,如配置为/path1/* ,则必须域名+/path1/才能命中
(12)path中的路径是自定义的,但一定要以/* 结尾,切记,切记,切记
e、编辑好内容后,保存文件,切记文件名字必须为apple-app-site-association,如图:

(10)paths是一个list,表示路径,一个App可以配置多个path,也可以直接使用/*
(11)/* 表示通用链接,即只要域名正确,可以直接命中,一般不建议直接使用/* ,如配置为/path1/* ,则必须域名+/path1/才能命中
(12)path中的路径是自定义的,但一定要以/* 结尾,切记,切记,切记
e、编辑好内容后,保存文件,切记文件名字必须为apple-app-site-association,如图:

1.4上传文件到服务器
将刚才的文件发送给后端同事,让帮忙上传至服务器根目录或者.well-known目录下,切记,只能这两个目录
1.5验证服务器文件上传是否成功
在服务器上传文件后,通过浏览器是可以正常访问到的。如果文件放在根目录下,链接为:https://test.uubx.com/apple-app-site-association,如果文件放在.well-known目录下,则链接为:
https://test.uubx.com/.well-known/apple-app-site-association(注:https://test.uubx.com/需要替换为你自己的域名)。浏览器打开后,会看到我们刚才配置的apple-app-site-association文件内容,如果不能,则需要查看文件目录是否正确,网络是否支持外网,服务器是否拦截。
1.6验证Universal Link链接是否配置正确
打开safri浏览器,输入https://test.uubx.com/path1/(域名替换为你配置的域名,path1路径替换为你自己配置的路径,如果直接配置的/* 则直接输入域名即可),编辑完成后,点击前往,加载完成后(会有一个报错页面),轻轻下拉网页,如果出现App的图标、名称和打开按钮,则表示配置成功。如图:

2.微信开放平台里面设置相关配置就行,但是以下必须注意


也就是调用分享的时候传入的url一定不能跟打开app的通用链接是一个域名
3.跳转到指定界面
直接实现代理方法即可,如下:

相关文章:
iOS分享到微信,配置Universal Links,并从微信打开app,跳转到指定界面
iOS分享到微信之后,需要从微信浏览器直接打开app,跳转到指定界面,这个时候最主要的就是分以下几步(微信sdk集成就不说了) 1.配置Universal Links Universal Links是iOS新系统出来后通用链接,用于在第三方浏览器直接打开app&…...
基于SSM构建的校园失眠与压力管理系统的设计与实现【附源码】
毕业设计(论文) 题目:基于SSM构建的校园失眠与压力管理系统的设计与实现 二级学院: 专业(方向): 班 级: 学 生: 指导教师&a…...
SAP 初始化库存移动类型561501511区别简介
项目上线初始化库存经常会用到561这个移动类型,同时我们在平时测试的过程中也会用到会进行库存的初始化,用的比较多是就是561和501这两个移动类型,本文将测试移动类型561&501&511这三个移动类型,分析三者之间的区别&#…...
情感搞笑聊天记录视频:AI自动化生成技术,操作简单,教程+软件
在数字化时代,内容创作已成为吸引观众、传递信息的重要手段。随着人工智能技术的飞速发展,AI自动生成视频为创作者提供了新的工具和可能性。本文将介绍如何利用AI技术,通过情感搞笑聊天记录视频,在视频号上实现内容的自动化生成&a…...
RabbitMQ中lazyqueue队列
lazyqueue队列非常强悍 springboot注解方式开启 // 使用注解的方式lazy.queue队列模式 非常GoodRabbitListener(queuesToDeclare Queue(name "lazy.queue",durable "true",arguments Argument(name "x-queue-mode",value "lazy&…...
Java三层框架的解析
引言:欢迎各位点击收看本篇博客,在历经很多的艰辛,我也是成功由小白浅浅进入了入门行列,也是收货到很多的知识,每次看黑马的JavaWeb课程视频,才使一个小菜鸡见识到了Java前后端是如何进行交互访问的&#x…...
算法设计与分析 笔记
截图摘自湖南大学彭鹏老师的ppt。笔记也是根据他的ppt整理的。 动态规划 核心 用数组记录中间结果,避免重复计算 三角数塔问题 问题描述 给定一个三角形数塔,从顶部出发,每次只能移动到下一行的相邻元素。要求找到一条路径,…...
mapreduce的工作原理
mapreduce的工作原理 MapReduce是一种编程模型,用于处理大规模数据集的并行运算。它的核心思想是"分而治之",即把一个大数据集分解成多个小块,由多个处理单元并行处理,然后再将结果合并以得到最终结果。MapReduce模型包…...
vue中v-bind和v-model有什么区别
在Vue.js中,v-bind和v-model都是指令,用于实现数据和DOM元素之间的双向绑定,但它们的使用场景和功能有所区别。 v-bind: v-bind是一个通用指令,用于动态地绑定一个或多个属性,或者一个组件prop到表达式。它可以绑定任何…...
基于SpringBoot和PostGIS的某国基地可视化实战
目录 前言 一、Java后台开发设计与实现 1、模型层实现 2、控制层设计 二、WebGIS界面实现 1、列表界面的定义 2、全球基地可视化 三、成果展示 1、全球部署情况 2、亚太地区 3、欧洲基地分布 4、中东的部署 四、总结 前言 在之前的博客中,我们曾经对漂亮…...
为什么Linux服务器空间充足而实际上空间已满的原因
以下是一个典型的Linux服务器的磁盘空间使用情况表,展示了不同文件系统的大小、已用空间、可用空间和挂载点等信息 磁盘空间表的基本组成 Linux服务器的磁盘空间使用情况通常通过df命令查看,输出的表格包含以下几列: Filesystem:…...
【LC刷题】DAY16:530 501 236
【LC刷题】DAY16:530 501 236 文章目录 【LC刷题】DAY16:530 501 236530. 二叉搜索树的最小绝对差 [link](https://leetcode.cn/problems/minimum-absolute-difference-in-bst/description/)501.二叉搜索树中的众数236. 二叉树的最近公共祖先 [link](htt…...
Vue 3 的 Teleport 组件实现跨层级通信
突破组件边界 - 使用 Vue 3 的 Teleport 组件实现跨层级通信 你可能已经熟悉了组件的基本概念:每个组件都是一个独立的单元,拥有自己的模板、样式和逻辑。但是,有时候我们需要在不同层级的组件之间进行交互,这就需要用到 Vue 3 中新引入的 Teleport 组件。 Teleport 组件可以…...
chromadb
Chroma是一款AI开源向量数据库,用于快速构建基于LLM的应用,支持Python和Javascript语言。具备轻量化、快速安装等特点,可与Langchain、LlamaIndex等知名LLM框架组合使用。 官网: https://www.trychroma.com/ https://docs.trychr…...
Gradle 自动化项目构建-Gradle 核心之 Project
一、前言 从明面上看,Gradle 是一款强大的构建工具,但 Gradle 不仅仅是一款强大的构建工具,它更像是一个编程框架。Gradle 的组成可以细分为如下三个方面: groovy 核心语法:包括 groovy 基本语法、闭包、数据结构、面…...
简单介绍 Kamailio cfg_rpc 模块
记得先加载 cfg_rpc 模块 loadmodule "cfg_rpc.so" kamailio 起来之后 运行 kamcmd cfg.list 可以得到: dispatcher: probing_threshold dispatcher: inactive_threshold dispatcher: ping_reply_codes rtpengine: rtpengine_disable_tout rtpengine: a…...
Windows 根据github上的环境需求,安装一个虚拟环境,安装cuda和torch
比如我们在github上看到一个关于运行环境的需求 Installation xxx系统Python 3.xxx CUDA 9.2PyTorch 1.9.0xxxxxx 最主要的就是cuda和torch,这两个会卡很多环境的安装。 我们重新走一遍环境安装。 首先创建一个虚拟环境 conda create -n 环境名字 python3.xxx…...
LeetCode 179. 最大数
更多题解尽在 https://sugar.matrixlab.dev/algorithm 每日更新。 组队打卡,更多解法等你一起来参与哦! LeetCode 179. 最大数,难度中等。 排序 解题思路:现将 int 类型转成 str 类型,然后进行字符串比较,…...
基于Java+SpringBoot+vue+elementui药品商城采购系统详细设计实现
基于JavaSpringBootvueelementui药品商城采购系统详细设计实现 🍅 作者主页 网顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承接各种…...
Pikachu靶场--文件上传
参考借鉴 Pikachu靶场之文件上传漏洞详解_皮卡丘文件上传漏洞-CSDN博客 文件上传漏洞:pikachu靶场中的文件上传漏洞通关_pikachu文件上传通关-CSDN博客 client check 在桌面新建一个文件夹,准备一个hello.php文件,文件写入如下代码 <?p…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
