ymx-douyin
    正在准备搜索索引...

    接口 YmxDouyin

    抖音开放平台

    提供抖音授权登录、分享到抖音(编辑页/拍摄页)、分享给抖音好友等能力。

    • 使用前需在抖音开放平台创建移动应用, 获取 clientKey 并申请对应能力权限(授权 user_info、分享 aweme.share、拍摄 aweme.capture 等)
    • 需在一门 App 鸿蒙应用列表中选择你的应用,点击左侧「其他配置」配置 appLink, 并与抖音开放平台鸿蒙应用的 AppLink 保持一致, 然后传入 initSdkappLink 参数(必填),授权与分享回传必需,不配置会失败
    • 使用前请先调用 initSdk 完成初始化(需在用户同意隐私协议后调用)
    • 授权、分享等操作结果通过方法返回值或 setListener 异步回传
    const dy = ymx.requirePlugin('ymx-douyin') as YmxDouyin;

    // 确认隐私协议之后初始化 SDK
    ymx.onConfirmPrivacy(async (isAgreed) => {
    if (isAgreed) {
    await dy.initSdk({ clientKey: 'your_client_key', appLink: 'https://your-app-link' });
    }
    });

    // 检查是否已安装抖音 App
    const res = await dy.isAppInstalled();
    console.log('已安装:', res.installed);

    // 授权登录(authCode 需在服务端换取 access_token)
    const auth = await dy.authorize({ scope: 'user_info', state: 'login' });
    console.log('authCode:', auth.authCode);

    // 分享视频到抖音编辑页
    await dy.share({
    title: '美好的一天',
    videos: ['https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4'],
    hashtags: ['话题1'],
    state: 'share_id'
    });

    // 拉起抖音拍摄页
    await dy.openRecordPage({ shareTitle: '拍摄标题', hashtags: ['话题1'] });

    // 分享图片给抖音好友
    await dy.shareToContacts({ image: 'http://i.yimenyun.net/sys/1.jpg' });
    interface YmxDouyin {
        id: string;
        version: string;
        authorize(data: AuthorizeData): Promise<AuthorizeResult>;
        initSdk(data: InitSdkData): Promise<InitResult>;
        isAppInstalled(): Promise<IsAppInstalledResult>;
        openRecordPage(data?: OpenRecordData): Promise<ShareResult>;
        removeListener(): Promise<void>;
        setListener(
            listener: (eventName: string, data: any) => void,
        ): Promise<void>;
        share(data: ShareData): Promise<ShareResult>;
        shareToContacts(data: ShareToContactsData): Promise<ShareResult>;
    }

    层级

    • JsApiBase
      • YmxDouyin
    索引

    属性

    id: string

    获取插件 ID

    version: string

    获取插件版本,如 1.2.3

    方法

    • 抖音授权登录

      拉起抖音授权界面,用户确认后返回临时票据 authCode,用它在服务端调用抖音接口 获取 access_token 及 open_id、用户信息。

      参数

      返回 Promise<AuthorizeResult>

      授权结果(authCode 为临时票据)

      const auth = await dy.authorize({ scope: 'user_info', state: 'login' });
      console.log('authCode:', auth.authCode);
    • 初始化抖音 SDK

      手动初始化,需在用户同意隐私协议后调用并传入 clientKey 与 appLink;已初始化时直接返回。

      参数

      • data: InitSdkData

        初始化参数(clientKeyappLink 均必填)

      返回 Promise<InitResult>

      初始化结果(code 为 0 表示成功)

      // 确认隐私协议之后初始化 SDK
      ymx.onConfirmPrivacy(async (isAgreed) => {
      if (isAgreed) {
      const res = await dy.initSdk({
      clientKey: 'your_client_key',
      appLink: 'https://your-app-link'
      });
      console.log(res.code, res.msg);
      }
      });
    • 检查是否已安装抖音 App

      返回 Promise<IsAppInstalledResult>

      是否已安装

      const res = await dy.isAppInstalled();
      console.log('已安装:', res.installed);
    • 打开抖音拍摄页

      拉起抖音拍摄页,用户拍摄后可发布视频。

      参数

      返回 Promise<ShareResult>

      操作结果

      await dy.openRecordPage({ shareTitle: '拍摄标题', hashtags: ['话题1'] });
      
    • 移除监听器

      返回 Promise<void>

    • 设置监听器,接收 eventName 事件名称,data 事件数据

      注意: 此接口为覆盖操作,仅保留最后一个监听器,最后的 listener 才能收到事件通知。

      参数

      • listener: (eventName: string, data: any) => void

      返回 Promise<void>

    • 分享到抖音

      分享图片或视频到抖音编辑页/拍摄页,用户可在抖音内编辑后发布。

      参数

      • data: ShareData

        分享参数(imagesvideos 必传其一)

      返回 Promise<ShareResult>

      分享结果(实际发布结果通过 Webhooks 异步通知)

      // 分享视频到编辑页
      await dy.share({
      title: '美好的一天',
      videos: ['https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4'],
      hashtags: ['话题1'],
      state: 'share_id'
      });

      // 分享图片到编辑页
      await dy.share({
      images: ['http://i.yimenyun.net/sys/1.jpg'],
      shareTo: 'edit'
      });
    • 分享到抖音联系人

      分享图片给抖音好友或群组。

      参数

      返回 Promise<ShareResult>

      分享结果

      await dy.shareToContacts({ image: 'https://example.com/image1.jpg' });