直接回答
设备重定向会读取访客的用户代理,并将 iPhone 用户发送到 App Store,将 Android 用户发送到 Google Play,而其他所有人则跳转到一个网页,全部通过一个链接完成。你今天就可以在自己的服务器上设置它(下面有示例)。在 RedirHub 中,设备路由可按需提供:联系我们,最快 3 天即可为你的工作区启用。
| Item | Details |
|---|---|
| Goal | go.mybrand.com/app 会打开正确的应用商店,或在桌面端打开网页 |
| 重定向类型 | 302 临时重定向,因为目标取决于设备 |
| 需要注意 | 会将自己报告为 Mac 浏览器的 iPad,以及忽略用户代理的缓存 |
使用 Nginx 设置#
nginxmap $http_user_agent $app_target {
default https://mybrand.com/get-the-app;
~*(iphone|ipad) https://apps.apple.com/app/id123456789;
~*android https://play.google.com/store/apps/details?id=com.mybrand.app;
}
server {
server_name go.mybrand.com;
location = /app {
add_header Vary User-Agent;
return 302 $app_target;
}
}在网页上设置它#
如果你不能更改服务器,着陆页上的一个小脚本也能做到同样的事。最近的 iPad 会报告为 Mac 浏览器,所以也要检查触摸支持:
javascriptconst ua = navigator.userAgent;
const isIOS = /iPhone|iPad|iPod/.test(ua) ||
(/Macintosh/.test(ua) && navigator.maxTouchPoints > 1);
if (isIOS) {
location.replace('https://apps.apple.com/app/id123456789');
} else if (/Android/i.test(ua)) {
location.replace('https://play.google.com/store/apps/details?id=com.mybrand.app');
}常见错误#
- 使用 301:浏览器会缓存它,所以曾经跳转到 App Store 的手机会一直去那里。
- 忘记设置 Vary: User-Agent,导致缓存把 iPhone 的响应提供给 Android 用户。
- 没有回退方案:桌面访客和未知设备需要一个可用的网页。
RedirHub 中的设备路由(按请求提供)#
在 RedirHub 中,品牌链接和二维码可以在为你的工作区启用设备路由后,将每种设备类型发送到各自的目标地址,因此印刷的二维码会打开正确的应用商店,而你之后仍然可以更改这些目标地址。该功能按请求设置,最快 3 天即可上线。
如需申请,请使用联系表单或发送邮件至success@redirhub.com,并附上你的工作区名称、链接以及每种设备对应的目标地址。
在 RedirHub 上需要设备路由? 告诉我们您需要哪些链接和设备。最快 3 天即可上线。
请求设备路由有关商店 URL 格式、Smart App Banners 和深度链接,请阅读App Store Redirect:适用于 iPhone 和 Android 用户的单一链接。
常见问题
设备路由可按需提供。请通过联系表单或 success@redirhub.com 与我们联系,最快可在 3 天内为您的工作区启用。
302。目标会根据设备而定,而浏览器会缓存 301,这会让手机永远跳转到同一个地方。
较新的 iPad 上的 Safari 会报告为 Mac 用户代理。也要检查触控支持,或者将 Mac 和 iPad 访客发送到一个同时包含两个商店徽章的页面。
