React Native实现类YouTube可点击Deep Link分享到第三方应用方案问询
React Native 第三方应用分享跳转完整方案
为什么之前的自定义scheme无法点击
WhatsApp、Viber这类第三方社交应用为了安全风控,默认不会将HTTP/HTTPS以外协议开头的字符串识别为可点击超链接,所以你之前用appscheme://格式的自定义scheme分享的内容无法点击是正常现象。
你提到的改为HTTPS格式链接的方案是可行的,但需要配套完成全链路配置,完整步骤如下:
- 第一步:域名与服务端配置
准备归你方所有的正式域名(示例中为appscheme.com),在域名根目录配置两个关联文件:- iOS端:存放
apple-app-site-association文件,配置APP的Bundle ID、需要关联的路径规则(比如/feeds/*),文件不需要后缀,返回Content-Type为application/json - Android端:存放
.well-known/assetlinks.json文件,配置APP的包名、签名公钥哈希、关联路径规则
两个文件都需要支持公开无跳转访问。
- iOS端:存放
- 第二步:端内关联配置
- iOS:在Xcode项目配置中开启
Associated Domains能力,添加关联域名,格式为applinks:appscheme.com;在AppDelegate中实现通用链接的接收解析逻辑,提取链接中的feedId参数,跳转到对应内容页 - Android:在AndroidManifest.xml中对应跳转页面的Activity节点添加intent-filter,开启
android:autoVerify="true",关联你的域名与路径规则;在对应Activity中实现链接参数解析逻辑,拿到feedId后跳转对应内容页
- iOS:在Xcode项目配置中开启
- 第三步:分享代码优化
你修改后的分享代码基本可用,建议增加辅助说明文本提升用户点击率,参考代码:import {Share} from 'react-native' // 实际使用时替换为真实的内容ID const targetFeedId = '123456' const shareContent = `我发现了一个精彩内容,点击即可查看:https://appscheme.com/feeds/${targetFeedId}` Share.share({ message: shareContent }) - 第四步:无APP降级兼容
如果点击链接的用户未安装你的应用,系统会默认用浏览器打开该链接,你可以在对应页面做两种降级处理:- 引导用户下载安装你的APP,安装完成后再次点击链接即可跳转对应内容
- 若有对应的H5版本内容,可直接在网页端展示内容,兼顾未安装APP的用户体验
验证注意事项
- 配置完成后先在系统自带的备忘录、短信应用中测试链接点击是否能正常唤起APP,验证通过后再到Viber、WhatsApp这类第三方应用测试
- iOS通用链接如果用户手动点击过跳转Safari的选项,会暂时失效,重新安装APP即可恢复关联
- Android应用链接的自动验证需要所有配置的域名都能正常访问
assetlinks.json文件,否则验证失败会无法直接唤起APP
内容的提问来源于stack exchange,提问作者spatak
相关产品推荐
相关产品推荐

