首先看几个例子,更能说明本文要表达的意思,如果对例子不感兴趣,可以直接看下一阶段的分析。
PC端的例子:
在浏览器地址栏输入tencent://message/?uin=88888888,然后回车,发现可以和QQ的陌生人聊天了,这个功能很早就有了。
Android的例子:
做Android开发的朋友(当然IOS也有类似的功能)都知道可以通过意图调用系统的功能,比如拨打电话:
Intent intent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:15899996666"));
startActivity(intent);
IOS的例子:
苹果的企业账户可以通过一种协议直接从公司的网站下载app并安装,不需要通过AppStore来下载,比如在html页面添加如下代码:<a href="itms-services://?action=download-manifest&url=http://192.168.0.100:8080/latest/testapp.plist(plist文件的地址)">Install 应用</a>,然后通过浏览器打开,点击,发现可以直接下载应用了。
看完三个例子细心的朋友可能发现在三个平台上执行的程序都使用了一种模式的地址,如:
1、tencent://message/?uin=88888888;腾讯自己实现的协议,只有QQ可以解析这个命令具体要做什么
2、tel:15899996666;系统实现的协议,APP调用后可以拨打电话
3、itms-services://?action=download-manifest&url=http://192.168.0.100:8080/latest/testapp.plist 苹果自己实现的协议,调用后可以绕过AppStore从其他网站下载APP,并安装
大家比较熟悉的是http://www.baidu.com,但是上面的是什么东东呢?他们比较像,同样也是协议调用,模式为:协议://命令?参数名称=参数值,这些协议可以是系统默认支持的(http、tel),也可以是用户自定义的(tencent、itms-services),对于 Windows、Linux 和 OS X 操作系统都支持自定协议,自定义协议可以帮助用户在同一系统上实现应用A调用应用B,比如直接在浏览器可以调用QQ,APP用tel协议调用系统拨打电话功能。
下面附上各操作系统如何实现自定义协议:
A protocol is a method that is used to send, receive, and handle information over a connection. Common protocols viewed from the browser include http, ftp, and mailto. In order for you to view information sent over a specific protocol, it must be registered. Once registered, the protocol can then be handled by the program you specify, such as your browser or a 3rd party viewer. This means that a hyperlink ( e.g. foo://fred ) can use the handler for protocol foo to open the file named fred.
Contents [hide]
1 Registering an unsupported protocol
1.1 Windows
1.2 Linux
1.3 OS X
2 Redirecting a registered protocol
[edit]Registering an unsupported protocol
Mozilla products utilize protocols defined internally, as well as those defined by the operating system. You can add the ability to use an unsupported protocol by registering it. The OS-specific method of doing this is described below.
[edit]Windows
Create the registry .reg file, replacing foo with your unregistered protocol, and the path with whatever handler program you want to run. Then merge it into the Windows registry.
REGEDIT4
[HKEY_CLASSES_ROOT\foo]
@="URL:foo Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\foo\shell]
[HKEY_CLASSES_ROOT\foo\shell\open]
[HKEY_CLASSES_ROOT\foo\shell\open\command]
@="\"C:\\Program Files\\Application\\program.exe\" \"%1\""
See Registering an Application to a URL Protocol for additional information.
[edit]Linux
Registration is unnecessary. Simply associate whatever proto: with a program through Firefox: Example: Add the sip: protocol to launch kphone for VoIP calls in Firefox:
- Type about:config into the address bar
- Right-click create new boolean value: network.protocol-handler.external.sip and set to true
- Right-click create new boolean value: network.protocol-handler.warn-external.sip and set to false
- Right-click create new string value: network.protocol-handler.app.sip and set to /usr/bin/kphone
This will actually launch kphone. Not sure if it will dial though. That is untested :)
You can also optionally register the protocol with whatever window manager you are using. In KDE this is done through Control Center - KDE Components - File Associations. This step is usually unnecessary unless your window manager has a custom browser, such as konqueror.
[edit]OS X
Probably very similar to Linux (above).
[edit]Redirecting a registered protocol
If the protocol is already handled by the browser, you can specify what program will be used as a handler to open the file. To do this, add the pref:
network.protocol-handler.app.foo as a string with value C:\Program Files\Application\program.exe
Note: If the path or name is incorrect, the browser will display an error saying "protocol (foo) isn't associated with any program". (See bug 312953).
You may also need to use the following prefs, although this is uncertain:
network.protocol-handler.external.foo = true
network.protocol-handler.expose.foo = false
- 浏览: 26168 次
- 性别:
- 来自: 北京
-
最新评论
-
hongtanke:
一起学习!
googel logo动画实现原理 -
Technoboy:
...
googel logo动画实现原理
相关推荐
Linux C大作业里面写了个聊天室的客户端,里面用到的传输协议规范 大作业介绍在 http://blog.csdn.net/u013174374/article/details/27805155
海康、大华、宇视等主流摄像机rtsp协议格式整理
2. 创建luck协议的编码器类,继承自`ChannelOutboundHandlerAdapter`。在这个类中,我们需要重写`write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception`方法,将luck协议对象...
标题 "C 写的RS232协议程序" 指的是使用C语言编写的一段代码,该代码设计用于处理RS232串行通信协议。RS232是早期广泛应用于计算机之间的串行通信标准,它定义了接口信号、电压水平、连接器类型以及传输速率等参数。...
高品质双管正激可调充电机项目资料:功率达900W-1Kw,全方位保护机制,完备源文件及通讯协议,量产充电机项目资料 900W 或 1Kw 20V-90V 10A 双管正激 可调电源 充电机 ...12. 通讯RS232隔离(自定协议),"高端量产充电机
易语言源码易语言自定服务客户协议源码.rar 易语言源码易语言自定服务客户协议源码.rar 易语言源码易语言自定服务客户协议源码.rar 易语言源码易语言自定服务客户协议源码.rar 易语言源码易语言自定服务客户协议...
在“易语言自定服务客户协议源码.rar”这个压缩包中,包含的是使用易语言编写的服务端和客户端的源代码,以及一个名为“源码使用说明.txt”的文本文件,用于指导用户理解和使用这些源码。 首先,让我们来深入理解...
易语言自定服务客户协议源码.zip易语言项目例子源码下载易语言自定服务客户协议源码.zip易语言项目例子源码下载易语言自定服务客户协议源码.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业...
在网络通信中,协议是无处不在的,标准协议、自定协议等等网络协议的选择取决于不同的应用场景。例如,在开发嵌入式网络产品时,可以使用 ICMP 协议来实现网络状态检测。如果要求 NetWare 的资源,可以选用 IPX 协议...
基于Qt的多路串口通信协议实现:自定义串口协议、定长与可变长报文处理、带参数指令展示源代码,基于Qt5.10.1的多路串口通信协议实现:自定义串口协议、定长与可变长报文处理、带参指令及源码介绍。,自定义串口通信...
通讯:RS232隔离(通讯协议:自定协议) ,量产1KW充电机控制器; 900W/1KW; 双管正激; 参数可调; PCB和程序; BOM; 磁性器件; 散热片规格书; 输入参数AC范围; 功率范围; 输出电压电流范围; 多重保护功能; RS232通讯协议...
9. **协议副本**:协议书通常至少一式三份,买卖双方及中介公司各执一份,自签署后生效。 10. **违约责任**:未在约定时间签订《商品房买卖合同》的一方可能会丧失定金或面临双倍返还定金的处罚。 11. **法律依据*...
通讯:RS232隔离(通讯协议:自定协议) ,核心关键词:量产充电机;900W/1Kw;双管正激;可调电源;PCB;程序;BOM;磁性器件;散热片规格书;源文件;输入参数;功率;输出;保护功能;通讯协议。,高端量产充电机:...
自动驾驶物流车辆VDA5050通信协议是一种为自动引导车辆(AGV)和主控制器之间交换订单和状态数据而设计的标准化通信接口。该协议由德国汽车工业协会(VDA)和德国机械设备制造业协会(VDMA)共同制定,目的是创建一...
总的来说,这份“易语言自定服务客户协议源码”是一个很好的学习资源,它涵盖了网络通信的基础知识,包括连接建立、数据发送、数据接收和处理等关键环节。对于想要深入学习易语言或者网络编程的初学者来说,这是一个...
它支持多种标准通讯协议,用户可以自定协议,支持透明传输。此外,它还支持远程参数设置、程序升级,具有远程管理功能。 在数据采集和传输方面,GPRS远程数据传输设备采用数据采集、传输一体化设计,可以通过GPRS...
在本文中,我们将深入探讨如何使用STC12C5A60S2单片机与MS5611气压传感器通过IIC协议实现气压定高功能。STC12C5A60S2是一款8位单片机,因其低功耗、高性能和丰富的I/O端口而在嵌入式系统中广泛应用。而MS5611是一款...
使用MCGS脚本开发工具自制的驱动文件,通过查看该实例,可快速掌握MCGS通讯驱动的编写方法,是很好的自学实例,推荐下载!
本文将深入探讨如何在STM32微控制器上,基于FreeRTOS实时操作系统实现PID参数的自整定。STM32是意法半导体(STMicroelectronics)推出的一种32位微控制器系列,广泛应用于工业控制、物联网设备等领域。FreeRTOS则是...
Eterm协议,全称为Eterm系统通信协议,是由中国民航信息网络股份有限公司(简称中航信)开发的一种专有通信协议,它使得航空公司的代理人、旅行社和其他服务提供商能够通过计算机系统与中航信的中央数据库进行交互。...