Skip to content

Commit fa10dfd

Browse files
wkpcoderdcloud-wandl
authored andcommitted
优化 registerUriHandler插件API描述
1 parent 167880a commit fa10dfd

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

ExtensionDocs/Api/README.md

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -492,11 +492,21 @@ viewId需要在package.json文件内的配置扩展点[views](/ExtensionDocs/Con
492492
### registerUriHandler
493493
`从HBuilderX 2.8.1及以上版本开始支持`
494494

495-
注册一个schema处理器。schema调用格式为:hbuilderx://requestExtension/%extensionId%/foo/bar?param=foo&param2=bar
495+
注册一个依赖hbuilderx协议的自定义网络请求处理器(schema),格式为:
496+
```
497+
hbuilderx://requestExtension/exampleid/examplerequest/example?example1=example2&...
498+
\________/ \_____________/ \________/ \__________________________________________/
499+
| | | |
500+
协议 自定义插件请求的标记 插件id 任意的自定义信息
501+
```
502+
503+
当在浏览器地址栏中输入以上格式的url时或者跳转到以上格式的url,已安装了HBuilderX的系统将会把该请求转入HBuilderX, 由HBuilderX识别该请求并检测对应插件(如上例子中名为exampleid的插件)的配置信息(package.json)中是否声明了
504+
[onUri](#/ExtensionDocs/activation_event.md#onUri), 此时如果当前的插件并没有激活,那么HBuilderX会先激活该插件并把对应请求转发到由registerUriHandler方法注册的处理器中。
496505

497-
其中前缀`hbuilderx://requestExtension/`为必须内容,%extensionId%为要调用的插件id,后面为要传递给scheme的UriHandler内的其他参数信息
506+
如果exampleid对应插件并未安装,则HBuilderX会弹框提示是否安装该插件
498507

499-
> 注意:通过该API注册一个scheme处理器后,需要在插件描述文件(package.json)中声明。声明方式是在激活事件(activateEvents)中加入onUri监听,如未声明onUri则插件未激活时不会自动激活,导致处理器不生效。
508+
#### 适用的场景
509+
- 需要通过浏览器等外部应用启动HBuilderX,然后通过指定插件响应请求
500510

501511
#### 参数说明
502512
|参数名称 |参数类型 |描述 |
@@ -509,6 +519,7 @@ viewId需要在package.json文件内的配置扩展点[views](/ExtensionDocs/Con
509519
|-- |-- |
510520
|Disposable |注册的UriHandler的销毁器,可将该对象放置到插件的context.subscriptions数组内,插件卸载时,将会自动注销该handler |
511521

522+
512523
#### 示例
513524

514525
```javascript
@@ -521,6 +532,7 @@ viewId需要在package.json文件内的配置扩展点[views](/ExtensionDocs/Con
521532
}
522533
}, context);
523534
```
535+
上面的示例中,假设插件id为foo,则在浏览器地址栏中输入hbuilderx://requestExtension/foo?param=abc时,将自动激活该插件,并执行handleUri函数,uri的值即为地址栏中输入的地址,示例中uri.query的值为param=abc。
524536

525537
## workspace
526538
workspace二级模块对象,用于处理和工作空间以及文档事件有关的逻辑
@@ -1497,4 +1509,3 @@ uri处理器接口
14971509
|path |String |Uri中的path |
14981510
|query |String |Uri中的query |
14991511
|scheme |String |Uri中的scheme |
1500-

0 commit comments

Comments
 (0)