HarmonyOS_SDK接口说明
1.登录接口(Promise)
/**
* 授权登录
* @param reqOptions 授权相关参数
*/
login(reqOptions:AuthReqOptions): Promise<AuthResult>
参数 AuthReqOptions 详细说明
字段 | 说明 | 传值 |
scope | 申请授权权限列表 | 默认值为"all" |
forceWebLogin | 是否强制使用网页登录 | 默认 false |
useQrCode | 是否使用扫码登录(仅在使用 H5 授权时生效,App 授权不支持) | 默认 false |
networkTimeout | 配置sdk内部WebView网页加载超时时长(单位ms,仅在 >0 时 生效,如传入<=0 则sdk内部会使用默认值 5000ms) | 默认 5000 |
回调结果 AuthResult 说明
字段 | 说明 |
type | 授权结果,值范围为枚举AuthResultType{Success = 1,Cancel=2,Error=3} |
message | 授权结果消息 |
detail | 授权结果详细信息 |
authResponse | 授权 code 数据类,业务关注 authCode 即可 |
2.登录接口(Callback)
/**
* 授权登录
* @param reqOptions 授权相关参数
* @param apiCallback 授权登录回调监听
*/
login(reqOptions:AuthReqOptions, apiCallback: ApiCallback<AuthResponse>): void
备注:AuthReqOptions、AuthResponse 与 1.0接口中的一致
3. 分享接口(Promise)
/**
* 分享
* @param type 分享类型
* @param shareJsonData 分享数据
*/
share(type: number, shareData: ShareData, openId?: string): Promise<ShareResult>
分享业务开发流程说明:
为保证业务分享数据的可信,需要对分享数据进行签名,以分享图文ark消息为例,我们推荐业务采用以下流程:
业务客户端:用户分享时,将分享的UGC内容传到业务后台
业务后台:使用用户UGC数据完成ark业务JSON数据的组装(ShareData.shareJson),生成ShareData中的时间戳(ShareData.timestamp)、随机自然数(ShareData.nonce),并对这三部分数据进行签名计算后,将以上数据回调业务客户端,由业务客户端调用互联分享接口发起分享。
参数说明:
type: 分享类型,目前支持图文ark类型 3006
shareData: 分享数据,包含分享业务数据+签名部分数据,详细内容如下:
字段 | 说明 | 备注 |
shareJson | 分享图片ark业务数据 | 举例:{ "msg_style": 0, "title": "鸿蒙ARK图文", "summary": "ARK分享的内容", "brief": "互联分享", "url": "https://www.qq.com", "picture_url": "https://tangram-1251316161.file.myqcloud.com/files/20200722/ 796170665c821b9a1982918094aa6ba7.png" } |
timestamp | 分享时的当前时间戳 | |
nonce | 随机自然数 | |
shareJsonSign | shareJson + timestamp + nonce 三部分合并后使用互联AppKey进行签名。 | 由业务后台使用互联AppKey计算分享数据签名 TODO:签名生成说明文档 |
回调数据ShareResult说明:
字段 | 说明 | 备注 |
resultType | 分享结果枚举 Success:分享成功 Cancel:用户取消 Error:分享异常 | 用户分享到QQ后,可能选择停留在QQ,这种场景下业务无法接受到分享回调。 |
code | 分享错误码 | |
message | 分享错误消息 | |
detail | 分享错误详细信息 | |
4. 分享接口(Callback)
/**
* 分享
* @param type 分享类型
* @param shareJsonData 分享数据
*/
share(type: number, shareJsonData: ShareData, openId?: string, callback?: ApiCallback<ShareResult>): void
参数说明:见3.0
5. 判断 QQ 是否安装
isQQInstalled(): boolean
6. 注册日志类
sdk输出日志,业务可将日志记录到业务日志文件中,方便后续排查问题
/**
* 向sdk注册 日志接收类
* @param iLogger
*/
IQQOpenApi.addCustomLogger(iLogger: ILogger): void;