我创建了一个自定义URL协议处理程序.
http://
mailto://
custom://
我已经注册了一个WinForms应用程序来做出相应的响应.一切都很好.
但我希望能够优雅地处理用户尚未安装自定义URL协议处理程序的情况.
为了能够做到这一点,我需要能够检测浏览器的注册协议处理程序,我想从JavaScript.但我一直无法找到一种方法来查询信息.我希望找到解决这个问题的方法.
感谢您提供的任何想法.
我们正在使用注册自己协议的软件.我们可以从浏览器运行应用程序然后通过以下链接
customprotocol://do_this.
Run Code Online (Sandbox Code Playgroud)
但有没有办法检查用户系统支持的自定义协议?如果不是,我们首先要求用户安装软件.
例如:
if (canHandle ('customprotocol')) {
// run software
}
else {
// ask to install
}
Run Code Online (Sandbox Code Playgroud)
编辑 我知道protocolLong属性,但它只适用于IE.
是否可以在打开本机应用程序中的共享对话框的网站上的Facebook链接上分享?
目前的行为:
现在点击Facebook共享链接打开基于Web的共享对话框,这是不好的,因为大多数移动Facebook用户正在使用本机应用程序,因此没有登录到他们的浏览器.因此,Web共享对话框会提示他们输入用户凭据 - 这可能导致他们不能共享.
理想行为:
单击Facebook链接上的共享将导致用户已登录的本机Facebook应用程序中的共享对话框.
在此先感谢您的帮助!
简而言之:是否可以将访问者重定向到自定义URI方案,或者在不支持该方案的情况下显示一些内容?
我的特殊用例是,我正在创建一个注册了自定义URI方案的移动应用程序,以便用户可以通过SMS或电子邮件发送链接来邀请其他用户在应用程序中执行某些操作。
链接指向我的服务器(在Apache上运行PHP),服务器将访问者重定向到适当的方案。只要重定向页面完成了所有工作,它就可以很好地工作,但是我希望能够显示一些内容,以防在未安装我的应用程序的计算机或其他设备上打开电子邮件。
我试图通过这些Javascript技巧以及在服务器上提供位置标头和PHP脚本中的内容来实现这一点。都不行。我也尝试<meta http-equiv="Location" content="myscheme://testing">在页面上使用标签,但这也没有任何作用。
有人建议使用用户代理嗅探来查看客户端是使用移动浏览器还是桌面浏览器。我已经在做这项工作以及初步检查,但是仍然可能在未安装我的应用的移动设备上打开链接,而这些人将被留空页面。
有什么方法可以做到这一点,还是我不走运?
我喜欢在C#的很多程序中使用try catch.我在网站上工作,我正在使用:
<a href="skype:freepcadvice?call">Call 555-555-5555</a>
Run Code Online (Sandbox Code Playgroud)
但是,如果他们当然没有Skype,那么就会出现错误,我想重定向一下,例如"未安装Skype,这里是下载链接".我猜这可能必须由Java脚本处理,但不确定HTML是否有这样的功能?