ShareSDK HarmonyOS NEXT集成指南

集成前准备

注册账号

使用MobSDK之前,需要先在MobTech官网注册开发者账号,并获取MobTech提供的AppKey和AppSecret,详情可以点击查看注册流程
ShareSDK流程图

集成配置

添加依赖

在Terminal窗口中,执行如下命令进行安装

复制代码
ohpm install @mobsdk/mobcore
ohpm install @mobsdk/sharesdk
ohpm install @yyz116/jsbn 

权限配置

ShareSDK需要 INTERNET权限才可正常使用,请在工程中entry模块的 module.json5文件中,新增 requestPermissions,如下所示:

复制代码
"module": {
  "name": "xxx",
  "type": "entry",
  "description": "xxx",
  "mainElement": "xxx",
  "deviceTypes": [],
  "pages": "xxx",
  "abilities": [],
  // 配置如下
  "requestPermissions":[
    {
      "name": "ohos.permission.INTERNET"
    }
  ]
}

配置华为Client ID(可选)

如您需要使用华为授权,则需要配置client_id才可正常使用授权功能。

  1. 登录AppGallery Connect平台,在"我的项目"中选择目标应用,获取"项目设置 > 常规 > 应用"的Client ID。

  2. 在工程中entry模块的 module.json5文件中,新增
    metadata,配置name为client_id,value为上一步获取的Client ID的值,如下所示:

    "module": {
    "name": "xxx",
    "type": "entry",
    "description": "xxx",
    "mainElement": "xxx",
    "deviceTypes": [],
    "pages": "xxx",
    "abilities": [],
    "metadata": [ // 配置信息如下
    {
    "name": "client_id",
    "value": "xxx"
    }
    ]
    }

如果应用需要使用用户的手机号或其他更为精细化的配置,可参考华为官方文档进行配置。

方法调用

使用ShareSDK前,需调用以下代码初始化 MobSDK,该方法务必在使用SDK功能之前调用

复制代码
MobSDK.init(context, "您的AppKey", "您的AppSecret")

初始化完毕,且当用户主动同意您应用隐私协议后,需调用以下代码回传隐私协议授权状态

复制代码
MobSDK.submitPolicyGrantResult(true)

设置UIAbilityContext使用分享/授权功能,先设置需要的UIAbilityContext

复制代码
await mobShare.ShareSDK.getInstance().setUIAbilityContext(getContext() as common.UIAbilityContext)

调用以下代码,可快速实现分享功能

复制代码
let records: Array<mobShare.SharedParam> = new Array()
records.push({utd: mobShare.ShareType.TEXT,content: "测试分享文本",})
let receive: mobShare.PlatformActionListener = {
    onComplete: (platform: mobShare.IPlatform, action: number, res: Map<string, Object>) => {
       //成功回调
    },
    onError: (platform: mobShare.IPlatform, action: number, error: Error) => {
       //异常回调  
    },
    onCancel: (platform: mobShare.IPlatform, action: number) => {
       //取消回调
    }
}
let plat = mobShare.ShareSDK.getInstance().getPlatformAsync(mobShare.Platform.SYSTEM)
plat.setPlatformActionListener(receive)
plat.share(records, getContext(), {
           previewMode: mobShare.SharePreviewMode.DEFAULT,
           selectionMode: mobShare.SelectionMode.SINGLE
})

调用以下代码,可快速实现华为授权功能第三方平台授权

复制代码
let plat = mobShare.ShareSDK.getInstance().getPlatform(mobShare.Platform.HUAWEI)
let receive: mobShare.PlatformActionListener = {
    onComplete: (platform: mobShare.IPlatform, action: number, res: Map<string, Object>) => {
        //成功回调
    },
    onError: (platform: mobShare.IPlatform, action: number, error: Error) => {
        //异常回调  
    },
    onCancel: (platform: mobShare.IPlatform, action: number) => {
        //取消回调
    }
}
plat.setPlatformActionListener(receive)
plat.authorize(params)

获取指定账号的用户信息

复制代码
let plat = await mobShare.ShareSDK.getInstance().getPlatformAsync(mobShare.Platform.HUAWEI)
mobShare.ShareSDK.getInstance().getPlatformAsync(mobShare.Platform.SYSTEM).then((plat) => {})
let receive: mobShare.PlatformActionListener = {
    onComplete: (platform: mobShare.IPlatform, action: number, res: Map<string, Object>) => {
        //成功回调,获取用户信息:platform.getDb().exportData()
    },
    onError: (platform: mobShare.IPlatform, action: number, error: Error) => {
        //异常回调
    },
    onCancel: (platform: mobShare.IPlatform, action: number) => {
        //取消回调
    }
}
plat.setPlatformActionListener(receive)
plat.showUser()

判断是否已经存在授权状态

复制代码
mobShare.ShareSDK.getInstance().getPlatformAsync(mobShare.Platform.HUAWEI).then((plat) => {
  plat.isAuthValid().then((isAuth) => {
    //返回结果:isAuth true是已授权,false是未授权
  })
})

移除授权状态和本地缓存,下次授权会重新授权获取新的授权信息

复制代码
mobShare.ShareSDK.getInstance().getPlatform(mobShare.Platform.HUAWEI).removeAccount()

至此,ShareSDK已经集成完毕且已实现最基础的分享和授权功能,可以参考其他文档继续使用ShareSDK的其他功能。

相关推荐
码客日记10 分钟前
Spring Boot 全局跨域配置与前后端联调避坑
java·spring boot·后端
键盘上的猫头鹰10 分钟前
【Linux 基础教程(四)】文件内容查看、打包压缩与搜索、重定向管道及环境变量
linux·服务器·python
FenceRain14 分钟前
Nginx 升级,平滑升级不停服务
服务器·网络·nginx
tellmewhoisi18 分钟前
linux 基础知识(文件权限相关)
linux·运维·服务器
程序猿追20 分钟前
给手机做一次“体检”——我在 HarmonyOS 上写了个存储空间与内存查看器
华为·智能手机·harmonyos
jiayong2325 分钟前
Claude Code 常见操作实战指南
linux·服务器·网络·ai·claude·claude code
nashane27 分钟前
HarmonyOS 6学习:HAR包跨平台编译陷阱与架构优化实战
学习·华为·harmonyos
兰令水28 分钟前
leecodecode【回溯子集】【2026.6.4打卡-java版本】
java·开发语言·深度优先
坚果的博客31 分钟前
ycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家“
华为·harmonyos
醇氧42 分钟前
【Linux 】sudo、sudo -i、su、su - 完整区别总结
linux·运维·服务器