在浏览器中检测 URI 方案支持
Detecting URI scheme support in-browser
是否有类似 Modernizr 的方法来检测客户端对 uri 方案的支持,例如
<a href="sms:1-408-555-1212">New SMS Message</a>
要么
<a href="whatsapp://send?text=Foo">New WhatsApp Message</a>
为了有条件地显示此类链接?
Possibly related
Check if URL scheme is supported in javascript
Is there something similar to iOS's canOpenURL to check URL schemes for mobile browsers?
您可以使用一些技巧,但如果您必须处理 Windows 上早于 Windows 8 的 IE < 11 甚至 IE 11,您将不会喜欢我的回复.
一般来说,如果在这些 URL 之后有一个 side-effect,则无法检测对 URL-scheme 的支持。
您可以尝试在 iframe 中打开其中一个 URL。因此,您可以将 iframe 附加到 body(或任何您想要的位置),然后将其 href 设置为特殊的 url.
在 Mozilla 浏览器中,如果不支持 URL 方案,您将得到一个异常。在基于 Webkit 的浏览器中(和 Chrome),什么也不会发生。
因此,除非您使用的是 Mozilla,否则甚至没有办法确定您所做的工作是否有效。
在 Windows 8 及更高版本下的 IE11 中(但在 Windows 的早期版本下不存在 - 只是缺少该方法),您可以使用 window.natigator.msLaunchUri
启动那个特殊的 url。如果不支持 URI 方案,这也会抛出。
不幸的是,这可能真的会阻碍你想做的事情:无论你使用什么技巧:如果该方案不受支持并且你尝试在任何不支持的 IE 版本上启动它msLaunchUri
,您的页面将被错误页面替换,无法阻止这种情况的发生。
我什么都试过了。 iframe 技巧导致错误消息。尝试 window.open
会导致错误消息或不执行任何操作,具体取决于天气。设置 img URL 不会导致错误(好)但也不会导致 URL 实际启动(坏)。
除非您与要启动的 url 应用程序合作(例如,如果安装了该应用程序,则告诉 IE 污染 User-Agent header),你在 IE 中运气不好。
是的 - 很可能不是您想听到的,对不起。
是否有类似 Modernizr 的方法来检测客户端对 uri 方案的支持,例如
<a href="sms:1-408-555-1212">New SMS Message</a>
要么
<a href="whatsapp://send?text=Foo">New WhatsApp Message</a>
为了有条件地显示此类链接?
Possibly related
Check if URL scheme is supported in javascript
Is there something similar to iOS's canOpenURL to check URL schemes for mobile browsers?
您可以使用一些技巧,但如果您必须处理 Windows 上早于 Windows 8 的 IE < 11 甚至 IE 11,您将不会喜欢我的回复.
一般来说,如果在这些 URL 之后有一个 side-effect,则无法检测对 URL-scheme 的支持。
您可以尝试在 iframe 中打开其中一个 URL。因此,您可以将 iframe 附加到 body(或任何您想要的位置),然后将其 href 设置为特殊的 url.
在 Mozilla 浏览器中,如果不支持 URL 方案,您将得到一个异常。在基于 Webkit 的浏览器中(和 Chrome),什么也不会发生。
因此,除非您使用的是 Mozilla,否则甚至没有办法确定您所做的工作是否有效。
在 Windows 8 及更高版本下的 IE11 中(但在 Windows 的早期版本下不存在 - 只是缺少该方法),您可以使用 window.natigator.msLaunchUri
启动那个特殊的 url。如果不支持 URI 方案,这也会抛出。
不幸的是,这可能真的会阻碍你想做的事情:无论你使用什么技巧:如果该方案不受支持并且你尝试在任何不支持的 IE 版本上启动它msLaunchUri
,您的页面将被错误页面替换,无法阻止这种情况的发生。
我什么都试过了。 iframe 技巧导致错误消息。尝试 window.open
会导致错误消息或不执行任何操作,具体取决于天气。设置 img URL 不会导致错误(好)但也不会导致 URL 实际启动(坏)。
除非您与要启动的 url 应用程序合作(例如,如果安装了该应用程序,则告诉 IE 污染 User-Agent header),你在 IE 中运气不好。
是的 - 很可能不是您想听到的,对不起。