使用 react-native 在 iOs 上为同一个应用程序处理具有多个环境的深层链接
Handle deep links with multiple environments for the same app on iOs using react-native
我有一个具有多个环境的 react-native 应用程序。
Dev、prod、...这意味着我在 phone App Dev、App Prod 上安装了多个 'copies' 应用程序。
这些在不同的包标识符下:
- com.myapp.dev
- com.myapp.prod
我使用深层链接打开应用程序,这在 Android 上完美运行,因为它会询问你想用哪个应用程序打开它,但在 [=70] =] 它只是打开第一个安装的应用程序,我找不到方法,例如:
- 启动
develop-app://whatever/1
并在 Dev 应用程序中打开它
- 启动
prod-app://whatever/1
并在 Prod 应用程序中打开它
我错过了什么?
这是我定义的 url 类型:
apple-app-site-association
文件也如下所示:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "1234.com.myapp.dev",
"paths": ["*"]
},
{
"appID": "1234.com.myapp.prod",
"paths": ["*"]
}
]
}
}
更新
- 我发现的第一个问题是
apple-app-site-association
没有使用 Content-Type
header,所以应用无法识别文件。
- 应该定义每个环境应该识别的路径:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "1234.com.myapp.dev",
"paths": ["/dev/*"]
},
{
"appID": "1234.com.myapp.prod",
"paths": ["/prod/*"]
}
]
}
}
- 现在我可以按预期看到网站顶部的横幅
Open with App Dev
您必须指定哪个应用打开哪个路径
例如,您的域名是example.com
您必须在 apple-app-site-association
文件
中为开发和生产应用程序指定不同的路径模式
例如,您可以更新 apple-app-site-association
文件,如下所示
{
"applinks": {
"apps": [],
"details": [
{
"appID": "1234.com.myapp.dev",
"paths": ["/dev/*"]
},
{
"appID": "1234.com.myapp.prod",
"paths": ["/prod/*"]
},
]
}
}
现在,假设您点击下面的网址,您将被定向到评论中提到的应用程序
- https://example.com/dev/123?id=3 // 打开开发应用程序
- https://example.com/dev?id=2 // 打开开发应用
- https://example.com/prod/123 // 打开产品应用
- https://example.com/prod // 打开产品应用
- https://example.com/prod/123?name=john // 打开产品应用
我有一个具有多个环境的 react-native 应用程序。
Dev、prod、...这意味着我在 phone App Dev、App Prod 上安装了多个 'copies' 应用程序。
这些在不同的包标识符下:
- com.myapp.dev
- com.myapp.prod
我使用深层链接打开应用程序,这在 Android 上完美运行,因为它会询问你想用哪个应用程序打开它,但在 [=70] =] 它只是打开第一个安装的应用程序,我找不到方法,例如:
- 启动
develop-app://whatever/1
并在 Dev 应用程序中打开它 - 启动
prod-app://whatever/1
并在 Prod 应用程序中打开它
我错过了什么?
这是我定义的 url 类型:
apple-app-site-association
文件也如下所示:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "1234.com.myapp.dev",
"paths": ["*"]
},
{
"appID": "1234.com.myapp.prod",
"paths": ["*"]
}
]
}
}
更新
- 我发现的第一个问题是
apple-app-site-association
没有使用Content-Type
header,所以应用无法识别文件。 - 应该定义每个环境应该识别的路径:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "1234.com.myapp.dev",
"paths": ["/dev/*"]
},
{
"appID": "1234.com.myapp.prod",
"paths": ["/prod/*"]
}
]
}
}
- 现在我可以按预期看到网站顶部的横幅
Open with App Dev
您必须指定哪个应用打开哪个路径
例如,您的域名是example.com
您必须在 apple-app-site-association
文件
例如,您可以更新 apple-app-site-association
文件,如下所示
{
"applinks": {
"apps": [],
"details": [
{
"appID": "1234.com.myapp.dev",
"paths": ["/dev/*"]
},
{
"appID": "1234.com.myapp.prod",
"paths": ["/prod/*"]
},
]
}
}
现在,假设您点击下面的网址,您将被定向到评论中提到的应用程序
- https://example.com/dev/123?id=3 // 打开开发应用程序
- https://example.com/dev?id=2 // 打开开发应用
- https://example.com/prod/123 // 打开产品应用
- https://example.com/prod // 打开产品应用
- https://example.com/prod/123?name=john // 打开产品应用