WebApp快捷打包
抖音
转到模块插件

敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多

JS-SDK 引用方式:

♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20241118.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;

♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package

initSdk 初始化

clientKey:

jsBridge.dy.initSdk({
  //
  clientKey: "{{initSdk.clientKey}}"
}, function(success, res) {
  alert(success ? "成功" : JSON.stringify(res));
});

isAppInstalled 是否已安装抖音APP

jsBridge.dy.isAppInstalled(function(installed) {
  alert(installed ? "已安装" : "未安装");
});

authorize 授权登录

scope:

state:

//1.申请上线之前的测试需在移动应用 设置 -> 白名单管理 页面添加测试用的白名单抖音号。
//2.首次授权登录测试号需增加 trial.whitelist 加入白名单权限范围
//3.取得 res.authCode 后需调用抖音服务器端接口才能绑定白名单
jsBridge.dy.authorize({
  //必须,权限范围,多个用逗号分割
  //在抖音移动应用 能力管理 -> 用户权限 页面查看或申请,已默认获得授权登录能力 user_info
  scope: "{{authorize.scope}}",
  //可选,状态码,回调时原样返回
  state: "{{authorize.state}}"
}, function(success, res) {
  if (success) {
    //用授权码调用抖音服务器端接口获取 access_token 及 open_id用户信息
    jsBridge.setClipboardText(res.authCode);
    alert("已复制 " + res.authCode);
  } else {
    alert("失败\n" + JSON.stringify(res));
  }
});

/*
成功时回调 res 参数结构
{
    authCode:    授权码,调用抖音服务器端接口获取 access_token 及 open_id用户信息
    state   :    原样返回的状态码
    grantedPermissions: 用户已同意的授权范围
    errorCode:   错误码
    errorMsg :   错误说明
}
*/

share 分享

// 需申请开通:能力管理 -> 视频权限 -> 发布内容至抖音(aweme.share)权限
// images、videos、mix 参数必传且仅可传其一
// iOS 以相册作为中转站,需要相册的完全访问权限
jsBridge.dy.share({
  //可选,标题
  title: "美好的一天",
  //可选,图片链接组
  images: [
    "https://www.example.com/image1.jpg",
    "https://www.example.com/image2.jpg",
    "https://www.example.com/image3.jpg",
    //...
  ],
  //可选,视频链接组
  videos: [
    "https://www.example.com/video1.mp4",
    "https://www.example.com/video2.mp4",
    "https://www.example.com/video3.mp4",
    //...
  ],
  //可选,图片、视频混合链接组,仅支持 Android
  mix: [
    { image: "https://www.example.com/image1.jpg" },
    { image: "https://www.example.com/image2.jpg" },
    { video: "https://www.example.com/video1.mp4" },
    //...
  ],
  //可选,抖音小程序信息,会在分享的内容左下角带小程序入口
  miniProgram: {
    //必须,抖音小程序ID
    appId: "aabb1122",
    //必须,名称
    title: "hello world",
    //必须,摘要
    desc : "你好世界",
    //可选,小程序页面地址
    appUrl: "pages/movie/index?id=123"
  },
  //可选,话题
  hashtags: [
    "话题1",
    "话题2",
    //...
  ],
  //可选,分享到哪里,默认 publish
  //edit    编辑页
  //publish 发布页
  shareTo: "publish"
  //可选,任意字符,分享成功时原样返回,可为 share_id 以便查询发布结果
  state: ""
}, function(success, res) {
  if (success) {
    alert("成功");
  } else {
    alert("失败\n" + JSON.stringify(res));
  }
});

/*
成功时回调 res 参数结构
{
    state   :    原样返回的状态码
    errorCode:   错误码
    errorMsg :   错误说明
}
*/

share 分享:图片

shareTo:

jsBridge.dy.share({
  title: "美好的一天",
  images: [
    "http://i.yimenyun.net/sys/1.jpg",
    "http://i.yimenyun.net/sys/2.jpg",
    "http://i.yimenyun.net/sys/3.jpg"
  ],
  hashtags: [
    "话题1",
    "话题2"
  ],
  shareTo: "{{shareImages.shareTo}}",
  state: ""
}, function(success, res) {
  if (success) {
    alert("成功");
  } else {
    alert("失败\n" + JSON.stringify(res));
  }
});

share 分享:视频

shareTo:

jsBridge.dy.share({
  title: "美好的一天",
  videos: [
    "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4"
  ],
  hashtags: [
    "话题1",
    "话题2"
  ],
  shareTo: "{{shareVideos.shareTo}}",
  state: ""
}, function(success, res) {
  if (success) {
    alert("成功");
  } else {
    alert("失败\n" + JSON.stringify(res));
  }
});

share 分享:图片、视频混合内容

shareTo:

jsBridge.dy.share({
  title: "美好的一天",
  mix: [
    { image: "https://www.example.com/image1.jpg" },
    { image: "https://www.example.com/image2.jpg" },
    { video: "https://interactive-examples.mdn.mozilla.net/media/cc0-videos/flower.mp4" }
  ],
  hashtags: [
    "话题1",
    "话题2"
  ],
  shareTo: "{{shareMix.shareTo}}",
  state: ""
}, function(success, res) {
  if (success) {
    alert("成功");
  } else {
    alert("失败\n" + JSON.stringify(res));
  }
});

shareToContacts 分享到联系人(好友或群组)

// image、webPage 参数必传且仅可传其一
jsBridge.dy.shareToContacts({
  //可选,图片
  //iOS 以相册作为中转站,需要相册的完全访问权限
  image: "http://i.yimenyun.net/sys/1.jpg",
  //可选,网页
  webPage: {
    //必须,网址
    //需在抖音平台进入应用:
    //能力管理 -> 视频权限 -> 分享给抖音好友/群 增加分享链接 提交审核你的链接域名
    link: "https://www.example.com",
    //必须,标题
    title: "hello world",
    //必须,摘要
    desc : "你好世界",
    //可选,缩略图,默认为抖音平台上所申请应用的图标
    imgUrl: "http://i.yimenyun.net/sys/2.jpg"
  },
  //可选,状态,分享成功时回调中原样返回
  state: ""
}, function(success, res) {
  if (success) {
    alert("成功");
  } else {
    alert("失败\n" + JSON.stringify(res));
  }
});

/*
成功时回调 res 参数结构
{
    state   :    原样返回的状态码
    errorCode:   错误码
    errorMsg :   错误说明
}
*/

shareToContacts 分享到联系人:图片

jsBridge.dy.shareToContacts({
  image: "http://i.yimenyun.net/sys/1.jpg",
  state: ""
}, function(success, res) {
  if (success) {
    alert("成功");
  } else {
    alert("失败\n" + JSON.stringify(res));
  }
});

shareToContacts 分享到联系人:网页

jsBridge.dy.shareToContacts({
  webPage: {
    //必须,网址
    //需在抖音平台进入应用:
    //能力管理 -> 视频权限 -> 分享给抖音好友/群 增加分享链接 提交审核你的链接域名
    link: "https://www.example.com",
    //必须,标题
    title: "hello world",
    //必须,摘要
    desc : "你好世界",
    //可选,缩略图,默认为抖音平台上所申请应用的图标
    imgUrl: "http://i.yimenyun.net/sys/2.jpg"
  },
  state: ""
}, function(success, res) {
  if (success) {
    alert("成功");
  } else {
    alert("失败\n" + JSON.stringify(res));
  }
});

openRecordPage 打开抖音拍摄

jsBridge.dy.openRecordPage({
  //可选
  shareTitle: "分享标题",
  //可选,抖音小程序信息,会在分享的内容左下角带小程序入口
  miniProgram: {
    //必须,抖音小程序ID,未填则忽略小程序信息
    appId: "",
    //必须,名称
    title: "hello world",
    //必须,摘要
    desc : "你好世界",
    //可选,小程序页面地址
    appUrl: "pages/movie/index?id=123"
  },
  //可选,话题
  hashtags: [
    "话题1",
    "话题2",
    //...
  ],
  //可选,任意字符,分享成功时原样返回,可为 share_id 以便查询获取用户发布的内容
  state: ""
}, function(success, res) {
  if (success) {
    alert("成功");
  } else {
    alert("失败\n" + JSON.stringify(res));
  }
});

/*
成功时回调 res 参数结构
{
    state   :    原样返回的状态码
    errorCode:   错误码
    errorMsg :   错误说明
}
*/