通过Web调用Deep Link打开iOS/Android App时能否传递参数?
iOS与Android:Web调用Deep Link打开App时的传参支持
iOS和Android平台均完全支持通过Web页面调用Deep Link打开App时传递参数,以下是分平台的具体说明和实现方式:
iOS平台
- 支持范围:iOS 9及以上可通过Universal Links实现,更早版本可使用自定义URL Scheme,两种方式都支持参数传递。
- 实现示例:
- 自定义URL Scheme:假设你的App注册的Scheme为
myapp,Web页面中可使用如下链接唤起App并传参:
App端可在myapp://product/detail?id=123&name=iPhone15application(_:open:options:)方法中解析URL的query部分,提取参数。 - Universal Links:若使用苹果官方的Universal Links,链接格式类似:
同样在App的对应回调方法中解析URL参数即可。https://yourdomain.com/product/detail?id=123&name=iPhone15
- 自定义URL Scheme:假设你的App注册的Scheme为
Android平台
- 支持范围:全版本Android均支持通过Deep Link传参,Android 6.0及以上虽增加了域名验证要求,但不影响参数传递功能。
- 实现示例:
- 先在
AndroidManifest.xml中给目标Activity配置Intent Filter:<activity android:name=".ProductDetailActivity"> <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="myapp" android:host="product" android:pathPrefix="/detail" /> </intent-filter> </activity> - Web页面中使用如下链接唤起App并传参:
App端在myapp://product/detail?id=456&name=GalaxyS24ProductDetailActivity中通过getIntent().getData()获取URL,再解析其中的query参数。
- 先在
通用注意事项
- 传递参数时需对参数值进行URL编码(比如用JavaScript的
encodeURIComponent()),避免特殊字符(如空格、&、=)导致解析失败。 - iOS的Universal Links需配置苹果开发者后台及网站根目录的
apple-app-site-association文件;Android若使用HTTPS scheme的Deep Link,需在Google Search Console完成域名验证。
内容的提问来源于stack exchange,提问作者Icarus
相关产品推荐
相关产品推荐

