📦 Harmonyos Sharesdk Integretion — HarmonyOS Sharesdk 集成
v1.0.1用于将 MobTech ShareSDK 集成到 HarmonyOS NEXT 项目的交互式指南。当用户想要在 HarmonyOS 中使用 ShareSDK 分享或华为授权时使用。
运行时依赖
安装命令
点击复制技能文档
HarmonyOS 分享SDK 集成 技能 适用场景
当用户提到以下任一主题时,使用本 技能:
HarmonyOS 分享SDK 集成 鸿蒙接入 分享SDK HarmonyOS 分享能力接入 分享SDK HarmonyOS NEXT 华为授权接入 MobTech 分享SDK 鸿蒙集成 分享SDK 隐私合规 分享SDK 扩展业务功能后续调整
如果用户的问题明确涉及 HarmonyOS NEXT 工程、ohpm 依赖、模块.json5 权限、MobTech 应用Key / 应用Secret、ZztSDK.submitPolicyGrant结果() 或分享/授权功能接入,应优先使用本 技能。
官方文档来源 集成指南:https://www.mob.com/wiki/detAIled?wiki=696&id=14 扩展业务功能设置:https://www.mob.com/wiki/detAIled?wiki=711&id=14 鸿蒙端合规使用说明:https://www.mob.com/wiki/detAIled?wiki=748&id=14 已确认的官方信息 开发工具:DevEco Studio 集成方式:在线集成 HarmonyOS API 支持:>= 12 依赖安装方式: ohpm 安装 @zztsdk/zztcore ohpm 安装 @zztsdk/分享sdk 文档明确要求在 entry 模块的 模块.json5 中配置 ohos.权限.INTERNET 文档明确支持: 分享能力 华为授权 ZztSDK.submitPolicyGrant结果(...) 隐私授权回传 ZztCustom控制器 主动数据采集控制 设置UIAbility上下文(...) 以支持分享/授权 UI 能力 扩展业务功能后续控制能力 基础集成默认策略
本 技能 按你的要求采用“先保证可用,再在文档中说明后续收敛”的策略:
基础集成阶段默认放开 分享SDK 常用权限和可选能力 不在 Excel 模板中提供“权限/可选能力”开关给开发者选择 不在基础集成阶段主动插入 ZztCustom控制器 控制逻辑 仅在集成完成后的项目说明文档中描述 分享SDK 扩展业务功能设置,供后期调整
基础集成阶段默认合并以下权限:
ohos.权限.INTERNET ohos.权限.获取_NETWORK_信息 ohos.权限.应用_追踪ING_CONSENT ohos.权限.应用ROXIMATELY_LOCATION ohos.权限.获取_WIFI_信息
如果工程已有更严格的权限治理,或用户明确要求最小权限集,再停下来与用户确认,不要擅自缩减。
文档未明确的事项
以下内容在官方文档中未给出完整写法,执行时必须先检查实际工程和已安装依赖,不可凭空补全:
@zztsdk/zztcore 和 @zztsdk/分享sdk 的 ArkTS 导入语句 params 在 plat.授权(params) 中的字段结构 是否必须修改 oh-package.json5、build-性能分析.json5、应用.json5 项目中推荐放置初始化代码、分享代码、授权代码的具体文件路径
如果用户要求你写这些部分,先扫描工程现状、已安装依赖和类型声明;若仍无法确认,明确告诉用户“官方文档未明确”。
6 步交互式集成工作流
所有写文件和改文件操作前,都必须先展示计划修改内容并等待用户确认。
步骤 1:启动流程 1-1 询问项目路径
主动询问用户提供 HarmonyOS 项目根路径,例如:
/Users/xxx/your-harmony-project
1-2 验证项目结构
至少检查以下文件中的一种或多种是否存在:
build-性能分析.json5 oh-package.json5 entry/src/mAIn/模块.json5 其他模块下的 src/mAIn/模块.json5
优先识别 entry 模块的 模块.json5。
如果路径不合法或不像 HarmonyOS 工程,提示:
路径验证失败,未识别到有效的 HarmonyOS 工程结构。
请确认项目根目录下至少存在以下文件之一:
- build-性能分析.json5
- oh-package.json5
- entry/src/mAIn/模块.json5
步骤 2:生成并填写配置模板 2-1 生成 Excel 模板
执行:
运行 as设置s/生成_excel_template.py 生成 as设置s/分享SDK_HarmonyOS_Config_Template.xlsx 复制到用户项目根目录并命名为 分享SDK_HarmonyOS_Config.xlsx 2-2 告知用户填写内容
明确要求用户填写:
MobTech 应用Key MobTech 应用Secret HarmonyOS 包名(或应用标识) 是否启用华为授权 如启用华为授权,则填写 命令行工具ent_id
等待用户回复“填好了”后再继续。
2-3 校验规则
读取 分享SDK_HarmonyOS_Config.xlsx 后,至少校验:
应用Key:必填,不能为空 应用Secret:必填,不能为空 bundleName:必填,不能为空 APIVersion:如填写,必须是整数且应 >= 12 enableHuaweiAuth:必须可转换为 true / false 命令行工具entId:当 enableHuaweiAuth=true 时必填
类型转换规则:
应用Key、应用Secret、命令行工具entId、bundleName 一律按字符串处理 开关字段统一转为 true / false APIVersion 统一转为整数
若校验失败:
列出全部问题 不修改用户项目 让用户修正 Excel 后重新回复“填好了” 步骤 3:完成依赖与配置修改
确认后再执行以下修改。
3-1 依赖安装
官方文档给出的安装命令是:
ohpm 安装 @zztsdk/zztcore ohpm 安装 @zztsdk/分享sdk
如果用户希望你代执行,应先说明将运行上述命令;如果项目已有依赖,则以实际工程为准,不重复破坏性修改。
3-2 模块.json5 修改
必须优先在 entry 模块的 模块.json5 中处理。
官方文档明确要求:
增加 请求权限s 至少包含 ohos.权限.INTERNET
本 技能 的默认策略是:基础集成阶段直接合并以下权限,不把权限选择交给开发者在 Excel 中决定:
ohos.权限.获取_NETWORK_信息 ohos.权限.应用_追踪ING_CONSENT ohos.权限.应用ROXIMATELY_LOCATION ohos.权限.获取_WIFI_信息 3-3 华为 命令行工具ent_id 配置
仅当用户启用华为授权时,在 模块.json5 的 metadata 中增加:
{ "name": "命令行工具ent_id", "value": "用户填写的命令行工具ent ID" }
如工程已存在 metadata,应在原结构中合并,而不是覆盖。
步骤 4:插入初始化与隐私授权代码 4-1 初始化
在使用 SDK 功能前,需先调用:
ZztSDK.init(上下文, "您的应用Key", "您的应用Secret")
优先把初始化放在应用启动路径或用户功能入口前的稳定位置。
如果工程入口无法快速确认,先扫描以下位置:
entry/src/mAIn/ets/entryability/EntryAbility.ets entry/src/mAIn/ets/应用.ets 其他 UIAbility / 应用Ability / 启动页文件
如果仍无法判断,向用户展示候选位置并让其确认。
4-2 说明合规原因
向用户说明:
根据 MobTech 隐私合规要求,使用 分享SDK 需要在用户同意隐私政策后才能回传授权结果。
你需要在 应用 中:
- 首次启动时展示《隐私政策》弹窗
- 用户点击“同意”按钮后,调用隐私授权代码
- 用户点击“不同意”则不应调用
请告知我:用户点击隐私政策“同意”按钮的回调代码在哪个文件、哪个方法中? 例如:EntryAbility.ets 的 on隐私Agreed() 方法,或具体位置如 entry/src/mAIn/ets/entryability/EntryAbility.ets:80
4-3 询问回调位置
等待用户告知具体的文件路径和方法名。
4-4 隐私授权回传
文档要求:只有在用户同意隐私政策后,才能调用:
ZztSDK.submitPolicyGrant结果(isGranted)
要求:
在用户点击隐私弹窗“同意”后调用 在用户拒绝前,不得调用 基础集成阶段默认不插入 ZztCustom控制器 代码 如果后续用户要控制扩展业务功能,再通过项目内说明文档引导其使用 ZztCustom控制器 或 ZztSDK.更新ZztCustom控制器(...) 4-5 展示并确认插入代码
展示要插入的代码:
// 用户同意隐私政策后调用 ZztSDK.submitPolicyGrant结果(true)
完整示例:
on隐私Agreed() { // 用户点击同意按钮
// === 分享SDK 隐私授权 === ZztSDK.submitPolicyGrant结果(true) // ========================
// 其他业务逻辑... }
询问:
以上代码将插入到 {文件} 的 {方法} 中,是否确认?
步骤 5:插入分享与授权示例 5-1 收集分享与授权落点
主动询问用户:
现在来配置分享和授权功能,请告诉我:
- 希望在哪个位置执行分享?
- 如需华为授权,希望在哪个位置执行授权?
- 分享内容是什么?
- 分享方式:
5-2 设置 UIAbility上下文
在使用分享/授权 UI 前,先设置:
awAIt mob分享.分享SDK.获取Instance().设置UIAbility上下文(获取上下文() as common.UIAbility上下文)
5-3 分享示例
可按官方示例插入基础分享流程:
构造 mob分享.分享dParam[] 获取平台实例 mob分享.平台.系统 设置 平台Action