FireFox调用本地应用
来源:互联网 发布:怎样在淘宝整点抢衣服 编辑:程序博客网 时间:2024/06/02 02:51
最近由于项目需要,对FireFox调用本地应用进行研究,现在将研究成果发布出来供大家参考,不完善的部分希望大家指出,我会补充。
FireFox可以javascript编程扩展浏览器的功能,扩展解决方案包括Add-ons,WebExtension,Add-ons是比较老的版本,现在已经被WebExtension替代了,当然Add-ons还可以用。WebExtension是一个通用的标准,不仅在FireFox上可以用,在chrome,Edge,Opera上也支持。
本文只是介绍调用本地应用的功能,如果有其他他需求可以参阅:https://developer.mozilla.org/zh-CN/Add-ons/Overlay_Extensions
WebExtension支持在浏览器上添加操作,比如添加按钮,添加菜单等,然后调用后台的代码完成特定的行为,比如调用本地应用。调用方式如下:
详细内容参阅:https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging
上面的方案解决了浏览器调用本地应用的问题,但是我们需要在网页上的操作调用本地应用,所以还需要研究网页怎么与后台进行交互。这就涉及到了Content scripts,Content script可以与页面交互,Content Script 只能访问WebExtension APIS 的一个小的子集(不包括调用本地应用的API),但是它们可以使用通信系统与后台脚本进行通信,从而间接的访问WebExtension APIS。详细内容参阅:https://developer.mozilla.org/zh-CN/Add-ons/WebExtensions/Content_scripts
通过上面的分析,页面调用本地应用分为三层:
1,网页
2,Content scripts
3,后台脚本
网页通过Content scripts间接调用后台脚本完成调用本地应用的功能。
之所以这么复杂,是由于浏览器安全的需要。
通过这种方式可以直接启动本地应用,但是如果本地应用需要一些参数,那么就要编写一个中间的本地应用,用于接收参数,并启动最终应用。中间本地应用可以用各种语言编写,比如python,C#,C++,java。一开始打算采用C++编写,但是后来发现并不兼容所有的操作系统,有的操作系统还需要另外安装链接库,链接库还跟操作系统版本有关,适配起来很麻烦,不通用。C#和java需要安装的东西太大,而且C#在linux上不好安装。通过上述分析最后采用python,linux上一般都带用python,python安装包比较小,而且跟操作系统版本无关,没有适配问题。NativeMessaging中有现成的python脚本。
上述就是fireFox调用本地应用的总结,还有一个问题,就是使用问题,要使用这个功能,需要下载插件,python,最终应用,还得注册中间应用,对于用户来说,这些操作有些繁琐,如果大家有好的办法,请不吝赐教。
- FireFox调用本地应用
- Firefox中利用javascript调用本地程序
- Firefox中利用javascript调用本地程序
- java调用本地应用学习
- android 中 浏览器调用本地app应用
- 网页调用本地windows应用例子
- 关天浏览器调用本地应用,以及判断本地应用问题
- 同一个WildFly服务器中的war应用调用本地ear服务
- 本地调用
- firefox本地使用ajax问题
- 本地调用, “本地调用”和远程调用!
- android url scheme 通过浏览器调用本地app应用 调用不了
- Firefox实用应用技巧
- firefox应用 插件
- firefox中如何调用insertAdjacentElement()
- Selenium+Python浏览器调用:Firefox
- selenium调用firefox和chrome
- Firefox 本地调试提示用户密码的解决方法
- 我的技术追星之旅:上海篇
- android 通过广播唤醒被杀死的app
- 讲给Android程序员看的前端教程(23)——JavaScript简介
- POJ 1475: 推箱子
- 教你搭建多变量时间序列预测模型LSTM(附代码、数据集)
- FireFox调用本地应用
- 讲给Android程序员看的前端教程(24)——变量
- 第二章 第四课 Scratch作品:听话的皮球(运动和方向)
- 讲给Android程序员看的前端教程(25)——基本数据类型
- HTML&CSS&DIV
- 讲给Android程序员看的前端教程(26)——数组
- IOS视频编辑,视频美颜,视频添加水印
- “学在清华”清华大学本科教育主题展在校史馆开展
- Appendix A. Spring boot 配置属性大全,史上最全application.properties--张振华.Jack