鸿蒙 发布&拍摄
收藏我的收藏
背景信息
目前鸿蒙发布支持到编辑页与拍摄页。
分享到抖音编辑页
分享到抖音编辑页流程一般为:三方制作好要分享的视频之后,调用 SDK 分享到抖音,会先调起抖音编辑页,最后再到抖音发布页。
注意:使用该能力需要申请 aweme.share 权限。
注意:支持分享到抖音编辑页最低抖音版本为 31.7.0 。
分享到拍摄页
目前支持开发者直接拉起抖音拍摄页,使用抖音的能力进行视频发布。
注意:使用该能力需要申请打开抖音拍摄页(aweme.capture)能力。
注意:支持分享到抖音拍摄页最低抖音版本为 31.7.0 。
请求参数说明
OpenShareRequest 对象
参数 | 类型 | 是否必传 | 描述 |
mediaObject | IMediaObject | 否 | 分享的基础媒体数据,目前抖音支持分享类型包括:
注意:多图多视频从抖音 3270 版本开始支持,可以用 support 接口判断当前抖音版本是否支持。 低于 3270 版本支持的尺寸需要小于屏幕高-导航栏-状态栏 /屏幕高度。如果不满足尺寸将会分享失败。 在拉起拍摄页可以不传入 mediaObject,其他需要传入。 |
state | string | 否 | 两种传值:
|
landingPage | enum | 是 | 指定拉起抖音落地页面 Record 拉起拍摄页需要 aweme.capture 权限 Edit 拉起编辑页需要 aweme.share 权限 |
backgroundMusic | MusicParamObject | 否 | 背景音乐 musicId 指定背景音乐 id。 在抖音 app 的任意音乐页面,点击右上角分享按钮,选择复制链接,将链接在 pc 浏览器打开。打开后,浏览器中链接内的数字即为音乐 id。 |
titleObject | OpenTitleObject | 否 | 设置分享内容的标题,详细参数请见下文 |
redirectUri | string | 否 | 回调 Uri 路径,传入应用的 applink 链接 |
OpenTitleObject 对象
参数 | 类型 | 描述 |
shortTitle | string | 短标题 |
title | string | 标题,图文下为正文 |
HashtagTitleMarker 对象
参数 | 类型 | 描述 |
hashtag | string | 话题 |
start | number | 插入在标题中的位置,超过边界会插入在末尾 |
操作步骤
第一步:准备环境
接入分享功能前请确保 SDK 环境已配置完毕且获取了相关权限。
同时确保在应用的管理后台配置了正确的包名等开发信息,路径为右上角控制台-移动应用-具体应用-设置-开发配置-开发信息。
第二步:发布图片或者视频 / 拉起拍摄页
构造发布请求
let request = new OpenShareRequest() request.state = "share" // 建议传入OpenAPI中申请的ShareID,分享结果会通过 Webhooks 进行回调。更多信息,请参见查询视频分享结果及数据。 request.callerLocalEntry = "EntryAbility" // //回调的UIAbility名称 request.redirectUri = "https://xxx/xxx" // 填写配置好的applink //拉起拍摄页 request.landingPage = LandingPage.Record //拉起编辑页 request.landingPage = LandingPage.Edit // 二选一 // 获取本地文件路径path后,使用fileUri.getUriFromPath 获取到uri let uri = fileUri.getUriFromPath(path) //图片 let imageObject = new ImageObject() imageObject.imageUri = uri request.mediaObject = imageObject //视频 let mediaObject = new VideoObject() mediaObject.videoUri = uri request.mediaObject = mediaObject // 多图多视频 // 判断当前抖音是否支持多图多视频 let douYinOpenApi = douYinOpenSDK.createDouYinOpenApi() if (douYinOpenApi?.isSupportApi(SupportApiName.SUPPORT_MIX) == true) { let mixObject = new MixObject() mixObject.uriList.push(uri) // 可以多加 request.mediaObject = mixObject }
设置分享内容的标题(非必须)
目前支持设置标题,同时标题中支持插入话题。指定的话题会展现在发布页面,用户可自行删除该话题,该话题类型支持商业化话题和普通话题。发布后同抖音原生话题没有差别。
let titleObject = new OpenTitleObject() request.titleObject = titleObject titleObject.shortTitle = "shortTitle" titleObject.title = "这里是标题 title" let hashtagMarker = new HashtagTitleMarker() hashtagMarker.hashtag = "hashtag1" //暂时不支持特殊字符 hashtagMarker.start = 1 // //插入标题的位置索引 titleObject.addMarkers(hashtagMarker)
设置分享内容的背景音乐(非必须)
音乐 id 获取方式:在抖音 App 的任意音乐页面,点击右上角分享按钮,选择复制链接,将链接在 PC 浏览器打开。打开后,浏览器中链接内的数字即为音乐 id 。
let musicObject = new MusicParamObject() request.backgroundMusic = musicObject musicObject.musicId = "7403619634367892278" //音乐id
发起分享
let listener: DouYinOpenListener = { onSuccess: (response: OpenShareResponse) => { }, onError: (response: OpenShareResponse, errorCode: number, errMsg?: string) => { } } douYinOpenSDK.createDouYinOpenApi()?.share(this.context, request, listener)
错误码
errorCode | 含义 |
20002 | 无效请求参数 |
20003 | 应用包名与官网填写不对应或者无 aweme.share 权限。请检查应用是否正常或者包名是否匹配。 |
20004 | 用户手动取消登录 |
20005 | 用户未授权使用相册 |
20006 | 网络出错 |
20007 | 视频格式或长度不支持 |
20008 | 图文格式不支持 |
20010 | 解析媒体资源失败 |
20011 | 视频尺寸或比例不支持 |
20012 | 视频格式不支持(要求 mp4) |
20013 | 用户手动取消发布 |
20014 | 有正在上传的作品,需要发布完成后才能下一次发布 |
20015 | 用户存为草稿 |
20017 | 无效的链接 |
20018 | 无效的用户 |
20029 | 当前为基本模式 |
20030 | 当前处于防沉迷时间锁阻断状态 |
20031 | 当前处于防沉迷蒙层展示状态 |
20035 | 视频状态非公开 |
20036 | 当前抖音版本不支持,请升级到最新抖音版本 |
20037 | 内部异常 |
20041 | 请检查应用包名是否匹配 |