小编典典

是否可以为 iPhone 应用程序(如 YouTube 和地图)注册基于 http+域的 URL 方案?

all

我想让 iOS
在手机上安装应用程序时使用我的应用程序从我的域(例如http://martijnthe.nl)打开
URL,如果不是,则使用 Mobile Safari 打开。

我读到可以为此创建一个唯一的协议后缀并将其注册到 Info.plist 中,但如果未安装该应用程序,Mobile Safari 会出错。

什么是解决方法?

一个想法:

1) 使用在任何桌面浏览器中打开的 http:// URL,并通过浏览器呈现服务

2) 检查 User-Agent,如果它是 Mobile Safari,打开 myprotocol:// URL 以(尝试)打开 iPhone
应用程序并让它打开 Mobile iTunes 以下载应用程序,以防尝试失败

不确定这是否可行…建议?谢谢!


阅读 72

收藏
2022-06-07

共1个答案

小编典典

我认为这样做的侵入性最小的方式如下:

  1. 检查用户代理是否是 iPhone/iPod Touch 的
  2. 检查appInstalledcookie
  3. 如果 cookie 存在并设置为 true,则设置window.locationyour-uri://(或做重定向服务器端)
  4. 如果 cookie 不存在,请打开“您知道您的站点名称有 iPhone 应用程序吗?” 带有“是的,我已经得到它”、“不,但我很想尝试一下”和“别管我”按钮的模态。
    1. “是”按钮将 cookie 设置为 true 并重定向到your-uri://
    2. “Nope”按钮重定向到“ http://itunes.com/apps/yourappname ”,这将在设备上打开 App Store
    3. “别管我”按钮将 cookie 设置为 false 并关闭模式

我玩过但发现有点笨拙的另一个选项是在 Javascript 中执行以下操作:

setTimeout(function() {
  window.location = "http://itunes.com/apps/yourappname";
}, 25);

// If "custom-uri://" is registered the app will launch immediately and your
// timer won't fire. If it's not set, you'll get an ugly "Cannot Open Page"
// dialogue prior to the App Store application launching
window.location = "custom-uri://";
2022-06-07