HarmonyOS 鸿蒙Next 悬浮窗开发报错 {"code":1300002}

发布于 1周前 作者 songsunli 最后一次编辑是 5天前 来自 鸿蒙OS

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-window-stage-V5#设置悬浮窗受限开放

import window from '@ohos.window';

@Entry
@Component
struct Index {
  // 定义windowClass变量,用来接收创建的悬浮窗
  private windowClass: window.Window | null = null;
  // 自定义创建悬浮窗方法
  createFloatWindow() {
    let windowClass: window.Window|null = null;
    // 窗口类型设置为window.WindowType.TYPE_FLOAT
    let config: window.Configuration = {
      name: "floatWindow", windowType: window.WindowType.TYPE_FLOAT, ctx: getContext(this)
    };
    // 创建悬浮窗
    window.createWindow(config, (err, data) => {
      if (err.code) {
        console.error('Failed to create the floatWindow. Cause: ' + JSON.stringify(err));
        return;
      }
      console.info('Succeeded in creating the floatWindow. Data: ' + JSON.stringify(data));
      windowClass = data;
      // 用windowClass变量接收创建的悬浮窗
      this.windowClass = data;
      // 设置悬浮窗位置
      windowClass.moveWindowTo(300, 300, (err) => {
        if (err.code) {
          console.error('Failed to move the window. Cause:' + JSON.stringify(err));
          return;
        }
        console.info('Succeeded in moving the window.');
      });
      // 设置悬浮窗大小
      windowClass.resize(500, 500, (err) => {
        if (err.code) {
          console.error('Failed to change the window size. Cause:' + JSON.stringify(err));
          return;
        }
        console.info('Succeeded in changing the window size.');
      });
      // 为悬浮窗加载页面内容,这里可以设置在main_pages.json中配置的页面
      windowClass.setUIContent("pages/FloatContent", (err) => {
        if (err.code) {
          console.error('Failed to load the content. Cause:' + JSON.stringify(err));
          return;
        }
        console.info('Succeeded in loading the content.');
        // 显示悬浮窗。
        if (windowClass!= null){
          windowClass.showWindow((err) => {
            if (err.code) {
              console.error('Failed to show the window. Cause: ' + JSON.stringify(err));
              return;
            }
            console.info('Succeeded in showing the window.');
          });
        }
      });
    });
  }
  // 自定义销毁悬浮窗方法
  destroyFloatWindow() {
    // 用windowClass调用destroyWindow销毁悬浮窗
    if (this.windowClass != null) {
      this.windowClass.destroyWindow((err) => {
        if (err.code) {
          console.error('Failed to destroy the window. Cause: ' + JSON.stringify(err));
          return;
        }
        console.info('Succeeded in destroying the window.');
      });
    } else {
      console.info('windowClass is null.');
    }
  }

  build() {
    Row() {
      Column() {
        Button('创建悬浮窗')
          .backgroundColor('#F9C449')
          .onClick(() => {
            // 点击按钮调用创建悬浮窗方法
            this.createFloatWindow();
          })
        Button('销毁悬浮窗')
          .margin({top:20})
          .backgroundColor('#F9C449')
          .onClick(() => {
            // 点击按钮调用销毁悬浮窗方法
            this.destroyFloatWindow();
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

以下是报错信息: 11-05 10:42:35.968 29584-29584 A03d00/JSAPP com.examp…lication E Failed to create the floatWindow. Cause: {“code”:1300002}

有人知道是什么原因吗

6 回复
问题解决了吗,开发环境也需要申请吗?我先试试,太难了!

层主您这边尝试可以开发悬浮窗功能了吗?

是的,按文档悬浮窗效果出来了,但我想要的做不了,是后放弃了

有要学HarmonyOS AI的同学吗,联系我:https://www.itying.com/goods-1206.html

楼主您好!文档上说明了创建WindowType.TYPE_FLOAT即悬浮窗类型的窗口,需要申请ohos.permission.SYSTEM_FLOAT_WINDOW权限,该权限为受控开放权限,您可以参考在AGC上申请Profile文件 上申请权限

针对您提到的HarmonyOS鸿蒙Next悬浮窗开发报错{"code":1300002}的问题,这通常指示着权限或配置相关的错误。在鸿蒙系统中,悬浮窗权限的获取和使用需要严格遵守系统的安全策略。

  1. 检查权限声明:确保您的应用已在manifest.json文件中正确声明了悬浮窗权限。这通常涉及ohos.permission.FLOATING_WINDOW等权限。

  2. 动态申请权限:在运行时,您的应用需要动态申请悬浮窗权限,并处理用户的授权结果。确保您的代码逻辑正确处理了权限申请流程。

  3. 系统兼容性:检查您的开发环境是否与鸿蒙系统的当前版本兼容。有时,系统更新会引入新的API或更改现有API的行为。

  4. 错误代码解析{"code":1300002}可能是一个特定的错误代码,建议查阅鸿蒙系统的官方文档或开发者社区,以获取关于此错误代码的详细解释和解决方案。

如果以上步骤未能解决您的问题,可能是更深层次的系统或配置问题。此时,建议您直接联系鸿蒙系统的官方技术支持团队。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部