我们有一个带有自定义 URL 方案的应用程序,比如说“com.company.app”。在 javascript 文件中,我们通过 window.location = "com.company.app://"; 调用应用程序。如果未安装该应用程序,Safari 会抛出错误“Safari 无法打开指定的地址.....无法识别以 'com.company.app' 开头的 Internet 地址”。这只发生在 Safari 上而不是其他浏览器上。
Chrome 和 Firefox 在类似情况下不会抛出任何错误,即它们知道 com.company.app 是一个协议处理程序,如果未安装应用程序,它们不会抛出任何错误并继续执行。
Safari 认为 com.company.app 是一个网站并尝试加载它而不是尝试打开应用程序。
请注意,这仅在未安装应用程序时发生。如果安装了该应用程序,则可以与 Safari 一起正常工作。
我还尝试过重启浏览器、重启机器、使用“默认应用”应用删除默认应用等。
Safari 版本:12.0 (xxxx) macOS 版本:10.14.x (Mojave)