更新记录

1.0.7(2026-07-21) 下载此版本

  • init 支持传入配置项,新增开启广告统计功能(adEnabled)
  • 新增 requestAppTrackingPermission 接口,申请 APP_TRACKING_CONSENT 权限

1.0.6(2026-05-29) 下载此版本

网络请求优化

1.0.5(2025-07-23) 下载此版本

  • 升级鸿蒙SDK 2.2.1
  • 拉起参数还原优化
查看更多

平台兼容性

uni-app x(4.71)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - 11 -

其他

多语言 暗黑模式 宽屏模式

openinstall-uts-harmony

方便鸿蒙平台集成使用 openinstall 功能,实现携带参数安装,渠道统计,一键拉起全部功能。

配置

使用前需要在 harmony-configs 的 entry/src/main/module.json5 中进行配置
harmony-configs 的配置方法参考 dcloud官网文档

配置 appkey 和权限

{
  "module": {
    // ...
    "metadata": [
      {
        "name": "com.openinstall.APP_KEY",
        "value": "openinstall为应用生成的appkey",
      }
    ],
    "requestPermissions": [
      {
        "name": "ohos.permission.INTERNET"
      },
      {
        "name": "ohos.permission.GET_WIFI_INFO"
      },
      {
        "name": "ohos.permission.GET_BUNDLE_INFO"
      },
      {
        "name": "ohos.permission.STORE_PERSISTENT_DATA"
      }
    ],
  }
}

配置 scheme

在需要打开的Ability中配置 scheme,用于浏览器中跳转到应用

{
  "module": {
    // ...
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        // ...
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          },
          // setting scheme start 
          {
            "entities": [
              "entity.system.default",
              "entity.system.browsable",
            ],
            "actions": [
              "ohos.want.action.viewData",
            ],
            "uris": [
              {
                "scheme": "openinstall为应用生成的scheme",
              }
            ]
          }
          // setting scheme end 
        ]
      },
      // ...
    ],
  }
}

集成App Linking

1、登录AppGallery Connect,点击“我的项目”,在项目列表中点击您的项目;
2、在左侧导航栏中选择 增长 > App Linking ,选择 应用链接(API>=12 适用) 页签,点击“创建”;
3、填写 openinstall 为应用生成的用于HarmonyOS应用关联的网址域名,设置完成后点击“发布”;
4、在应用的module.json5文件中进行如下配置,以声明应用关联的域名地址,并开启域名校验开关。

{
  "module": {
    //...
    "abilities": [
      {
        "name": "EntryAbility",
        "srcEntry": "./ets/entryability/EntryAbility.ets",
        //...
        "exported": true,
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          },
          // setting applinking start
          {
            "entities": [
              "entity.system.browsable"
            ],
            "actions": [
              "ohos.want.action.viewData"
            ],
            "uris": [
              {
                "scheme": "https",
                "host": "openinstall为应用生成的关联域名"
              }
            ],
            "domainVerify": true
          }
          // setting applinking end
        ]
      }
      //...
    ]
  }
}

开启广告功能(可选)

如需参与广告统计,需要获取设备的 OAID,在 harmony-configs 的 entry/src/main/module.json5 中声明 APP_TRACKING_CONSENT 权限

{
  "module": {
    // ...
    "requestPermissions": [
      // ... 其它权限
      {
        "name": "ohos.permission.APP_TRACKING_CONSENT",
        "reason": "$string:reason_app_tracking",
        "usedScene": {
          "abilities": [
            "EntryAbility"
          ],
          "when": "inuse"
        }
      }
    ]
  }
}

reason 需要在 entry/src/main/resources/base/element/string.json 中配置对应的字符串资源,例如 reason_app_tracking = 用于获取设备标识符,提供个性化广告服务

开启广告统计时,需先调用 requestAppTrackingPermission 申请 APP_TRACKING_CONSENT,在其回调中再执行 init(传入 adEnabled: true)以及 getInstall 等操作。无论用户是否授权,都建议继续完成初始化。

导入

import * as OpenInstall from "@/uni_modules/openinstall-uts-harmony";

初始化

建议在 App.vue 的 onLaunch 方法中进行初始化

OpenInstall.init()

如需开启广告统计功能,先申请权限,再在回调中初始化:

function startOpenInstall() {
    OpenInstall.init({
        // 开启广告统计功能(必须为 true 才会参与广告统计)
        adEnabled: true,
        // 业务侧已有 OAID 时可手动传入(可选)
        // oaid: "63b29df7-xxxx-xxxx-xxxx-d03fc03d57fb",
    })
    OpenInstall.getInstall({
        fail: (err) => { /* ... */ },
        success: (result) => { /* ... */ }
    })
    OpenInstall.registerWakeUp({
        fail: (err) => { /* ... */ },
        success: (result) => { /* ... */ }
    })
}

// 无论授权成功或失败,都继续初始化
OpenInstall.requestAppTrackingPermission({
    success: () => {
        startOpenInstall()
    },
    fail: (err) => {
        startOpenInstall()
    }
})

获取拉起数据

在初始化之后调用,注册拉起回调

OpenInstall.registerWakeUp({
    fail: (err) => {
        uni.showModal({
            icon: 'none',
            title: '获取拉起参数错误:' + JSON.stringify(err)
        })
    },
    success: (result) => {
        uni.showModal({
            icon: 'none',
            title: '拉起参数:' + JSON.stringify(result)
        })
    }
})

获取安装数据

在需要安装数据时调用,默认超时 10 秒

OpenInstall.getInstall({
    fail: (err) => {
        uni.showModal({
            icon: 'none',
            title: '获取安装参数错误: ' + JSON.stringify(err)
        })
    },
    success: (result) => {
        uni.showModal({
            icon: 'none',
            title: '安装参数:' + JSON.stringify(result)
        })
    }
});

支持传入回调超时时间的函数 getInstallWithTimeout(callback, seconds)

事件上报

// 注册统计
OpenInstall.reportRegister()
// 效果点统计
OpenInstall.reportEffectPoint("effect_test", 1);
// 效果点明细统计
let extra = {
    "x": "hello",
    "y": "100",
    "z": "false"
}
OpenInstall.reportEffectPointWithParams("effect_detail", 1, extra);

分享上报

用于裂变分享上报
shareCode : 分享标识码(用户标识)
sharePlatform : 分享平台,参考openinstall官网定义的平台字符串

OpenInstall.reportShare("c11011", "QQ", {
    fail: (err) => {
        uni.showModal({
            icon: 'none',
            title: 'error = ' + JSON.stringify(err)
        })
    },
    success: (result) => {
        uni.showToast({
            icon: 'none',
            title: 'report success'
        })
    }
})

隐私、权限声明

1. 本插件需要申请的系统权限列表:

开启广告统计功能时需要 ohos.permission.APP_TRACKING_CONSENT 权限用于获取 OAID

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 openinstall SDK会采集数据,详情可参考 https://www.openinstall.com/

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议