问题标签 [custom-protocol]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - 为什么我的自定义协议会干扰 ajax 调用?
我正在编写一个 Web 应用程序,其中包含一个链接,该链接使用自定义协议来调用用户机器上的可执行文件。像这样的东西:
预期的操作是在用户单击链接并且可执行文件开始运行后,它开始向 Web 服务发送进度信息。我希望用户的浏览器查询相同的服务并在网络浏览器中向用户显示进度。
计划是启动可执行文件,然后开始对服务进行 ajax 调用并更新网页上的一些文本。但是,似乎存在一些与自定义协议链接相关的问题,阻止了 ajax 调用的执行。我收到以下错误:
{"readyState":0,"responseText":"","status":0,"statusText":"error"}
这通常是为跨域问题保留的,但这不是这里发生的事情。
这是我的代码(我将协议更改为“mailto”协议,因此它可以在任何人的机器上运行):
如果我更改 $("#go").click() 以返回 false ,则 ajax 调用成功,如下所示:
但是现在自定义协议没有执行,所以可执行文件永远不会运行。
关于如何让它发挥作用的任何想法?
javascript - 使用 Javascript 检测协议处理程序
前言:我不是 Windows/软件开发人员。我只是一个具有 Javascript 技能的 Web 开发人员,所以我知道我可能不了解协议处理程序的来龙去脉。
我是一个团队的一员,该团队创建了一个安装协议处理程序的软件。一旦用户安装了软件,他们就可以通过访问类似的链接来启动它<a href="myAwesomeApp://params">Start!</a>
。
我的问题(我知道这是一个非常古老的问题)是我需要一种方法来查看是否安装了此协议处理程序。
- 如果是,请运行协议处理程序
- 如果没有,请重定向到软件安装程序位置
我在这里找到了一个适用于 FF 和 Chrome 的半有前途的解决方案(关于脚本的旧博客文章在这里)。我不确定为什么这对 IE 不起作用,即使作者明确为 IE 创建了功能。这是我目前正在使用的代码(HTML/JS):
我创建了一个示例页面用于故障排除。上缺少一个单'
引号line 72
,所以我添加了它。其他一切都没有改变。*
我的问题有两个:
- 有没有更好的方法来实现这种类型的协议处理程序检测?有没有办法修复该
launchIE()
功能使其正常工作? - 有没有办法知道在使用此检查时我应该访问哪些处理程序?例如,在我当前的代码中,“acrobat”在 Chrome 中显示为 True。在 IE10 中,它显示为 false。我对什么应该是真/假有一个大致的了解,但我不确定。
我正在尝试在 Javascript 中执行此操作,因为该项目的要求是从浏览器启动程序(然后返回结果)。如果这在 Javascript 中是不可能的,我愿意听取任何其他解决方案。
c# - 如何在 xamarin 中使用自定义协议打开 android 应用程序
我需要使用 myapp://app 之类的自定义协议打开我的应用程序,我知道如何在 Xcode 中执行此操作。现在我正在 Xamarin 中开发一个 android 应用程序,我想知道是否有在 Xamarin 中做同样的事情。
这是我的第一个 Xamarin Android 项目,所以我不知道如何实现这一点,请帮助
c++ - 使用自定义协议时的 C++ 应用程序根
我使用以下技术在通过自定义协议启动的 Windows 上创建了一个 C++ 应用程序:http: //msdn.microsoft.com/en-us/library/ie/aa767914 (v=vs.85).aspx .
它使用 ifstream 加载配置文件,该文件与可执行文件位于同一文件夹中。因此,如果我使用相对路径 ( ifstream myfile ("config.cfg");
),它就像一个魅力。但是,如果我像这样在 IE 中使用自定义协议调用我的应用程序:myprotocol:\\
当我执行相同的可执行文件时,它无法加载文件。
有人可以向我解释为什么我的程序在通过自定义协议执行时表现不同,以及我应该如何让我的应用程序加载文件而不必使用绝对路径?
GetModuleFileName
在这两种情况下都正确给出了可执行文件的路径。这只是一个小测试。
任何帮助表示赞赏,亚历山大
webview - 从 Windows Store App 中的 WebView 捕获到自定义协议的导航
有没有办法在 Windows Store (8.1) 应用程序的任何 Webview 导航事件中捕获对带有 href 的超链接的点击(例如:myapp://xyz)?我知道这可以在 html 中使用 window.external.notify 来实现。wp7中缺少此功能,后来在wp8中添加了Windows 8.1应用程序中不允许这样做还是我在这里遗漏了什么?
c - 在 linux 内核中实现自定义协议栈
我们已经在 STM32 微控制器平台上为传感器网络实现了自定义协议,现在最好将该协议栈移植到 linux 内核中。
情况是这样的:我们有一个定制的无线电发射器,内置功能很少(NRF24L01+)。但同时我们对带宽和功耗有很高的要求,所以我们在简单的 NRF24L01+ 功能之上设计并实现了分时算法(DTDMA)。同样为了连接可靠性,我们实现了传输层协议,它负责重传(使用稍微修改的滑动窗口协议)。我们的网络采用星形拓扑结构,因此此处不需要路由,而且似乎将来也不会改变。
另请注意,另一端的资源太少,无法实现完整的 TCP/IP 协议栈。所以自定义轻量级协议是强制性的:(。
所以本质上我们有三层:
- 硬件驱动程序 (NRF24L01+)
- 时分算法
- 包控制算法
所以问题是时间共享算法应该在哪里(架构上)?
据我了解,实现 NRF 驱动程序的最佳方法是使用linux/netdevice.h接口,而数据包控制(滑动窗口)是使用linux/net.h接口(使用struct proto_ops)。但我无法弄清楚时间划分应该如何以及在哪里适合。
任何帮助都非常感谢。提前致谢 :)。
javascript - 使用 Chrome 在 Windows 8+ 中检测自定义协议处理程序
我正在尝试检测我的处理自定义协议的应用程序是否已安装并使用不同的浏览器工作。我查看了该站点上的其他问题,例如: 如何检测浏览器的协议处理程序?,并查看了这样的资源,以使其在大多数浏览器中的大多数平台上都能正常工作。
在将其标记为重复之前,请听我说...
我能够让我的功能在 Windows 8+ 上的 Chrome 之外的所有设备上运行。我不能像在 Windows 7 上那样在 Chrome 上使用窗口焦点方法,因为它会弹出要求我在商店中查找应用程序的消息。
有什么方法(缺少扩展)可以在 Chrome 上的 Windows 8+ 中检测自定义协议处理程序?
更新:
使用 onBlur 检测它仅适用于 Windows 7,因为在 8+ 中,如果它没有找到可以打开您的协议的内容,它会打开“从应用商店查找内容”对话框,这会使浏览器失去焦点。
javascript - 带有自定义协议的 Javascript SDK API 域?
所以我正在用 Node-Webkit/NW.js 编写一个需要“登录到 LinkedIn”按钮的应用程序。我们必须使用自定义协议/域以允许连接到 Dropbox API(我们称之为 app://example)。
在开发人员门户上的应用程序详细信息中,对于 JavaScript API 域,我有“app://example”和“example”。但是,当我尝试在应用程序中使用我的 API 密钥时,我收到以下错误:
未捕获的错误:JavaScript API 域仅限于示例
LinkedIn 是否不允许自定义协议,并且只允许 http/https?这对我们来说是一个大问题,我希望有人能够回答。
java - Java nio 无阻塞客户端服务器应用程序和自定义协议
我正在研究 java.nio 无阻塞客户端服务器应用程序,该应用程序有一个非常简单的自定义协议:
(体长不固定。)
问题是有时我在 ByteBuffer 中没有足够的字节,然后解码失败
我必须等待下一个缓冲区完成填充类,所以我想避免因为它阻塞线程而进入睡眠状态。是否有解决此问题的模式/方式/链接/示例?
我还尝试将“未读字节”存储在临时缓冲区中,但我不喜欢它,有时我无法正常工作。
谢谢,任何帮助表示赞赏