React Native深度链接:如何通过邮件链接打开APP实现密码重置
解决React Native深度链接在邮件中唤起应用的问题
Hey there! 既然你已经通过adb shell am start -W -a android.intent.action.VIEW -d sports://sport成功唤起应用,说明你的深度链接核心配置是没问题的,接下来咱们搞定邮件里的链接唤起问题:
一、邮件中直接使用你的深度链接
其实邮件里的链接就是你已经在用的sports://sport本身,只需要按照以下方式插入到邮件中:
- 纯文本邮件:直接粘贴
sports://sport,部分邮件客户端会自动识别为可点击链接; - HTML格式邮件:用HTML标签包裹,比如:
这种方式兼容性更好,大部分邮件客户端都能正确识别并允许点击。<a href="sports://sport">点击打开我的运动应用</a>
二、测试与验证
你已经安装了"Deep link Tester",可以先做这两步验证:
- 在Deep link Tester中输入
sports://sport,点击测试,如果能正常打开应用,说明链接本身是有效的; - 给自己发送一封测试邮件,插入上述链接,用手机端邮件客户端打开并点击链接。如果无法唤起,继续看下面的排查点。
三、常见问题排查
如果邮件点击没反应,可能是这些原因:
- 邮件客户端限制:部分邮件客户端(比如某些企业邮箱APP)会拦截非HTTP/HTTPS协议的链接。这时候可以考虑用HTTP跳转方案:
- 准备一个HTTP链接,比如
https://your-domain.com/open-sport; - 在你的服务器上配置这个链接的跳转逻辑,当用户在手机上打开时,先判断是否安装了你的应用,如果安装则唤起
sports://sport,否则跳转到应用商店; - 把这个HTTP链接放到邮件里,用户点击后就能通过跳转唤起应用。
- 准备一个HTTP链接,比如
- AndroidManifest配置遗漏:再检查下你的
AndroidManifest.xml里的intent-filter是否完整,确保包含:
注意<intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="sports" android:host="sport" /> </intent-filter>android.intent.category.BROWSABLE是必须的,它允许浏览器和邮件客户端唤起你的应用。 - 系统安全设置:部分安卓手机的隐私或安全设置会阻止第三方应用唤起你的APP,可以在应用的「默认打开方式」设置中,确认允许你的应用被外部链接唤起。
四、进阶方案:使用App Links(推荐)
如果想让HTTP链接直接唤起应用(不需要跳转提示),可以配置Android App Links:
- 在
AndroidManifest.xml的intent-filter中添加android:autoVerify="true"; - 在你的域名下放置
assetlinks.json文件,验证域名归属; - 之后用户点击
https://your-domain.com/sport这类链接时,系统会直接打开你的应用,无需跳转浏览器。
内容的提问来源于stack exchange,提问作者Jaydipsinh Vaghela
相关产品推荐
相关产品推荐

