gpt4 book ai didi

javascript - Mobile safari - 抑制不支持的协议(protocol)警报

转载 作者:行者123 更新时间:2023-12-03 20:17:33 26 4
gpt4 key购买 nike

我正在为 iPhone 创建一个网站,并使用 native 应用程序 (cliqcliq Quickpick) 上传照片。我使用如下脚本来检查应用程序是否已安装。基本思想是将用户发送到自定义 url,如果应用程序存在,则启动该应用程序,如果不存在,则应忽略该 url,并将用户带到 App Store。下面是脚本:

window.launchQuickpic = function() {
var start = new Date();
setTimeout(function() {
if (new Date() - start > 2000) {
return;
}
window.location = 'http://www.cliqcliq.com/quickpic/install/';
}, 1000);

var getParams = [...];
window.location = 'vquickpic://?' + getParams.join('&');
};

如果未安装 native 应用程序,我会收到警告框,指出 Safari 无法识别自定义 URL。用户单击“确定”后,它会按预期工作。但这个警报确实很烦人。

我尝试用 try/catch 包围 window.location= 代码。没有帮助。

最佳答案

如果我理解正确,您会看到预期的行为。

如果未安装该应用程序,则系统不知道应该如何处理以“vquickpic://”开头的 URL。这就是您收到错误消息的原因。

我认为您所看到的是您首先将 window.location 设置为 ' http://www.cliqcliq.com/quickpic/install/ ' 但在完成加载之前,您尝试将 window.location 切换到 'vquickpic://'。这会生成错误,并且当您消除警报时,Web View 会继续加载第一个 URL。

这里的主要问题是错误来自 iPhone 操作系统本身,无法通过网页内的 JavaScript 访问。网页无法询问 iPhone 是否安装了特定应用程序或可以执行特定操作。

我认为您能做的最好的事情就是告诉用户,单击链接将尝试启动 native 应用程序(如果已安装),但如果他们收到错误,则需要将其关闭并点击页面上的另一个链接来安装应用程序。

关于javascript - Mobile safari - 抑制不支持的协议(protocol)警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2737205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com