万能链接打我的服务器?
我已经在我的iOS应用程序上使用我的后端的别名子域名(如sudomain.mydomain.com
来设置Universal Links。 我想让没有安装应用程序的用户redirect到App Store中的页面,而不是在我们的服务器上触发一些不存在的端点(我们没有webapp只有一个移动后端)。
我正在考虑做这样的事情:
app.get('*', (request, response) => { const domain = request.headers.host, subdomain = domain.split('.'); if ( subdomain[0] === 'subdomain'){ response.redirect('www.linktoappstore.com'); } ... });
不过,我不希望这会干扰通用链接的人安装了应用程序。 通用链接是否get
发送到我的服务器的请求,或iOS是否在这种情况发生之前拦截它们?
这应该工作得很好。
当configurationUniversal Links并安装应用程序时,设备在启动应用程序之前不会启动服务器。 这是因为iOS在应用程序最初安装时caching了apple-app-site-association
文件,并且如果打开的URL与在那里定义的path相匹配,Universal Links就会启用。在这种情况下,iOS完全绕过任何Web请求,并立即启动您的应用程序。
当然,这意味着你不能跟踪Universal Linkstream量 ,这可能成为一个主要的难点。 要解决这个问题,你需要像Branch.io (全面披露:我在分支团队)填写丢失的数据。
另外,如果你是代理子域名,请确保 iOS没有看到任何types的redirect。 否则, apple-app-site-association
文件将不会被刮取(常见的Universal Link实现问题)。