设置HBuilderX底部状态栏消息

    参数说明

    返回值

    返回类型 描述
    销毁器,可调用dispose方法清理状态栏消息

    示例

    clearStatusBarMessage

    清空状态栏消息

    参数说明

    返回值

    示例

    showErrorMessage

    在窗口右下角显示错误通知框

    参数说明

    参数名称 参数类型 描述
    message String 消息内容,支持html标签
    buttons Array<String> 通知框中的按钮组

    返回值

    返回类型 描述
    Promise<String> 如果设置了按钮,返回用户点击了哪个按钮

    示例

    1. let resultPromise = hx.window.showErrorMessage('是否删除该文件?',['是','否']);
    2. resultPromise.then((result)=>{
    3. if(result == '是'){
    4. console.log("选择了是");
    5. }else if(result === '否'){
    6. console.log("选择了否");
    7. }
    8. });

    showInformationMessage

    在窗口右下角显示消息通知框

    参数说明

    参数名称 参数类型 描述
    message String 消息内容,支持html标签
    buttons Array<String> 通知框中的按钮组

    返回值

    返回类型 描述
    Promise<String> 如果设置了按钮,返回用户点击了哪个按钮

    示例

      效果如下:

      参数说明

      返回值

      返回类型 描述
      Promise<String> 如果设置了按钮,返回用户点击了哪个按钮

      示例

      showQuickPick

      在窗口中间弹出一个可搜索的建议选择列表

      参数说明

      参数名称 参数类型 描述
      items Array<QuickPickItem> 建议选择项列表
      options 设置

      返回值

      返回类型 描述
      Promise<QuickPickItem> 返回用户选择得某个列表项

      示例

      1. const pickResult = hx.window.showQuickPick([
      2. {
      3. label: '../',
      4. description: '回到上一级目录',
      5. backPath: 'foo/bar'
      6. }
      7. ], {placeHolder: '请选择一个目录或者文件'});
      8. pickResult.then(function(result) {
      9. if (!result) {
      10. return;
      11. }
      12. let backPath = result.backPath;
      13. //do something with result
      14. })

      getActiveTextEditor

      获取当前激活的编辑器,如果没有打开的编辑器返回undefined

      参数说明

      返回值

      返回类型 描述
      Promise<> 返回当前激活的编辑器

      示例

      1. let activeEditor = hx.window.getActiveTextEditor();
      2. activeEditor.then(function(editor){
      3. console.log(editor.document.fileName);
      4. });

      showInputBox

      在窗口中间居中弹出一个输入框,获取用户输入。类似于浏览器的prompt方法。

      参数说明

      参数名称 参数类型 描述
      options InputBoxOptions 输入框设置

      返回值

      示例

      1. let inputPromise = hx.window.showInputBox({
      2. prompt:"请输入密码",
      3. password:true
      4. });
      5. inputPromise.then((result)=>{
      6. console.log("输入的密码为:",result);
      7. });

      创建一个输出控制台通道,可用于在控制台输出文本内容。

      参数说明

      参数名称 参数类型 描述
      channel String 控制台通道名称,在添加内容到控制台时,会将该名称作为前缀输出,eg:[${channel}] 这是要输出的内容。

      返回值

      返回类型 描述
      控制台通道

      示例

      createTreeView

      创建指定viewId的视图,在窗体左侧区域创建一个和项目管理器同级的tab项。tab的内容区为一个树控件,可自行装载节点。

      viewId需要在package.json文件内的配置扩展点views中声明,完整的扩展视图流程参考

      参数说明

      参数名称 参数类型 描述
      viewId String 视图Id,需要首先在配置扩展点views中声明。
      options TreeViewOptions 创建TreeView时需要的设置项。

      返回值

      示例

      1. class DemoTreeDataProvider extends hx.TreeDataProvider{
      2. constructor(demoData) {
      3. super();
      4. this._demoData = demoData;
      5. }
      6. let demoData = this._demoData;
      7. return new Promise(resolve => {
      8. if (!element) {
      9. resolve(demoData);
      10. } else {
      11. resolve(element.children);
      12. }
      13. });
      14. }
      15. getTreeItem(element) {
      16. return {
      17. label:element.name,
      18. collapsibleState:element.children ? 1 : 0,
      19. command:{
      20. command:element.children ? "":"extension.helloWorld",
      21. arguments:[
      22. element.name
      23. ]
      24. }
      25. }
      26. }
      27. }
      28. let demoData = [
      29. {
      30. name:"Root1",
      31. {
      32. name:"child1"
      33. },
      34. {
      35. name:"child2"
      36. }
      37. ]
      38. },
      39. {
      40. name:"Root2",
      41. children:[
      42. {
      43. name:"child3",
      44. },
      45. {
      46. name:"child4"
      47. ]
      48. }
      49. ]
      50. hx.commands.registerCommand("extension.helloWorld",function(param){
      51. hx.window.showInformationMessage("选中了TreeItem:" + param[0]);
      52. });
      53. hx.window.createTreeView("extensions.treedemo",{
      54. showCollapseAll:true,
      55. treeDataProvider:new DemoTreeDataProvider(demoData);
      56. });

      createWebView

      从HBuilderX 2.8.1及以上版本开始支持

      创建指定viewId的WebView控件视图,在窗体左侧或右侧区域创建一个tab项。tab内容为webview,webview里可装载html页面,可以较灵活的渲染自定义的内容。

      viewId需要在package.json文件内的配置扩展点中声明,完整的扩展视图流程参考如何注册一个新的视图?

      参数说明

      参数名称 参数类型 描述
      viewId String 视图Id,需要首先在配置扩展点views中声明。
      options WebView属性

      返回值

      返回类型 描述
      WebViewPanel WebViewPanel WebViewPanel属性

      示例

      1. let webviewPanel = hx.window.createWebView("viewId",{
      2. enableScritps:true
      3. });
      4. let webview = webviewPanel.WebView;
      5. webview.html = `
      6. <script>
      7. // 以下两种写法等同
      8. hbuilderx.onDidReceiveMessage((msg)=>{
      9. });
      10. window.addEventListener("message",(msg)=>{
      11. });
      12. hbuiderx.postMessage({
      13. command: 'alert',
      14. text: 'HelloWorld'
      15. });
      16. </script>
      17. <img src="xxxx">
      18. `;
      19. webview.postMessage({
      20. command:"test"
      21. });
      22. webview.onDidReceiveMessage((msg)=>{
      23. if(msg.command == 'alert'){
      24. hx.window.showInformationMessage(msg.text);
      25. }
      26. });

      registerUriHandler

      从HBuilderX 2.8.1及以上版本开始支持

      注册一个依赖hbuilderx协议的自定义网络请求处理器(schema),格式为:

      1. hbuilderx://requestExtension/exampleid/examplerequest/example?example1=example2&...
      2. \________/ \_____________/ \________/ \__________________________________________/
      3. | | |
      4. 协议 自定义插件请求的标记 插件id 任意的自定义信息

      当在浏览器地址栏中输入以上格式的url时或者跳转到以上格式的url,已安装了HBuilderX的系统将会把该请求转入HBuilderX, 由HBuilderX识别该请求并检测对应插件(如上例子中名为exampleid的插件)的配置信息(package.json)中是否声明了 , 此时如果当前的插件并没有激活,那么HBuilderX会先激活该插件并把对应请求转发到由registerUriHandler方法注册的处理器中。

      如果exampleid对应插件并未安装,则HBuilderX会弹框提示是否安装该插件。

      适用的场景

      • 需要通过浏览器等外部应用启动HBuilderX,然后通过指定插件响应请求

      参数说明

      返回值

      返回类型 描述
      Disposable 注册的UriHandler的销毁器,可将该对象放置到插件的context.subscriptions数组内,插件卸载时,将会自动注销该handler

      示例

      上面的示例中,假设插件id为foo,则在浏览器地址栏中输入hbuilderx://requestExtension/foo?param=abc时,将自动激活该插件,并执行handleUri函数,uri的值即为地址栏中输入的地址,示例中uri.query的值为param=abc。