swan.openCommunityEditor

基础库 3.90.1 版本开始支持。以下版本请使用小程序发布器组件

解释: 调起原生全屏内容发布器,并支持开发者配置发布器展示模块。

方法参数

Object object

object参数说明

属性名类型必填默认值说明
contentPlaceholderString请输入正文正文默认占位符
titlePlaceholderString请输入标题标题默认占位文符
moduleListArray显示模块list
imageConfObject{maxNum:9,ratio:1}图片参数配置,最大上传图片数量和图片压缩比
navBarTitleTextString发布帖子导航栏标题文案
navBarTextStyleStringblack导航栏标题文字颜色,有效值 black / white
navBarBackgroundColorHexColor#ffffff导航栏背景颜色
confirmTextString发布发布按钮的文字,最多 2 个字符,超出长度会被截断
confirmColorHexColor#3388ff发布按钮的文字颜色
cancelTextString取消取消按钮的文字,最多 2 个字符,超出长度会被截断
cancelColorHexColor#666666取消按钮的文字颜色
targetTextString设置发布范围文案,若配置发布范围模块,则必填
emojiPathString设置自定义表情配置路径
successFunction发布内容的回调函数
failFunction调起失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

success返回参数说明

参数名类型说明
tempFilePathsArray.<string>图片的本地文件路径列表 。
tempFilesArray.<object>图片的本地文件列表,每一项是一个 File 对象。
titleString标题
contentString正文

moduleList 列表

若moduleList传空数组或不传,则默认展示正文、图片模块、表情模块。若传值,则只展示所传 list 中配置的模块。如:moduleList: ['image'] 则只展示图片模块。

moduleList类型描述
titleString标题
imageString图片模块
emojiString表情模块
targetString发布范围模块

imageConf 参数说明

参数类型描述
maxNumNumber最多上传图片数量
ratioNumber图片压缩比例,0-1之间的浮点型
  1. imageConf: {
  2. maxNum: 9,
  3. ratio: 0.5
  4. }

emojiPath 参数说明

开发者在配置 emoji 模块后,可以选择是否使用自定义表情表。若使用自定义表情功能,则将自定义表情的资源文件夹路径传入 emojiPath 字段。若不传 emojiPath 字段则使用默认表情包。

自定义表情资源文件夹格式:文件夹中包括:emoji.json 和所有表情图片资源。外层文件夹名字可以由开发者自由定义,路径配置在 emojiPath 中即可,emoji.json 为固定文件名,请开发者按格式创建。表情没有数量和大小限制,但是表情资源会占用包体大小。

图片 emoji.json 格式:图片

示例

在开发者工具中预览效果

扫码体验

swan.openCommunityEditor - 图3请使用百度APP扫码

图片示例

swan.openCommunityEditor - 图4

swan.openCommunityEditor - 图5

swan.openCommunityEditor - 图6

代码示例

  • 在 swan 文件中
  1. <view class="wrap">
  2. <view class="card-area">
  3. <view class="top-description border-bottom">
  4. <view>基础用法</view>
  5. <view>moduleList:[]</view>
  6. </view>
  7. <button type="primary" bindtap="openCommunityEditor">打开图文发布器</button>
  8. </view>
  9. <view class="card-area">
  10. <view class="top-description border-bottom">
  11. <view>展示全部功能</view>
  12. <view>moduleList:['title','image','emoji','target']</view>
  13. </view>
  14. <button type="primary" bindtap="openCommunityEditorAll">打开全功能发布器</button>
  15. </view>
  16. <view class="tip-week">
  17. 注:基础库 3.90.1 版本开始支持。
  18. </view>
  19. </view>
  • 在 js 文件中
  1. Page({
  2. openCommunityEditor() {
  3. swan.openCommunityEditor({
  4. contentPlaceholder: '请输入帖子正文',
  5. titlePlaceholder: '请输入标题',
  6. navBarTitleText: '发布帖子',
  7. navBarTextStyle: 'black',
  8. navBarBackgroundColor: '#ffffff',
  9. moduleList: [],
  10. confirmText: '发布',
  11. confirmColor: '#3388ff',
  12. cancelText: '取消',
  13. cancelColor: '#666666',
  14. targetText: '话题/吧/版块',
  15. success(res) {
  16. console.log('openCommunityEditor success', res);
  17. // 将图片上传到服务器
  18. // swan.uploadFile({
  19. // url: 'https://smartprogram.baidu.com/xxx', // 仅为示例,并非真实的接口地址
  20. // filePath: res.tempFilePaths[0], // 要上传文件资源的路径
  21. // name: 'myfile',
  22. // success: function (res) {
  23. // console.log(res.statusCode);
  24. // // 上传成功关闭发布器
  25. // swan.closeCommunityEditor();
  26. // },
  27. // fail: function (err) {
  28. // console.log('错误码:' + err.errCode);
  29. // console.log('错误信息:' + err.errMsg);
  30. // }
  31. // });
  32. swan.closeCommunityEditor();
  33. swan.showToast({
  34. title: '发布成功',
  35. icon: 'none'
  36. });
  37. },
  38. fail(err) {
  39. console.log('openCommunityEditor fail', err);
  40. swan.closeCommunityEditor();
  41. },
  42. complete(res) {
  43. console.log('openCommunityEditor complete', res);
  44. }
  45. });
  46. },
  47. openCommunityEditorAll() {
  48. swan.openCommunityEditor({
  49. contentPlaceholder: '请输入帖子正文',
  50. titlePlaceholder: '请输入标题',
  51. moduleList: ['title', 'image', 'emoji', 'target'],
  52. imageConf: {
  53. maxNum: 9,
  54. ratio: 1
  55. },
  56. navBarTitleText: '发布帖子',
  57. navBarTextStyle: 'black',
  58. navBarBackgroundColor: '#ffffff',
  59. confirmText: '发布',
  60. confirmColor: '#3388ff',
  61. cancelText: '取消',
  62. cancelColor: '#666666',
  63. targetText: '话题/吧/版块',
  64. emojiPath: '../../emojidata',
  65. success: function (res) {
  66. console.log('openCommunityEditor success', res);
  67. // 将图片上传到服务器
  68. // swan.uploadFile({
  69. // url: 'https://smartprogram.baidu.com/xxx', // 仅为示例,并非真实的接口地址
  70. // filePath: res.tempFilePaths[0], // 要上传文件资源的路径
  71. // name: 'myfile',
  72. // success: function (res) {
  73. // console.log(res.statusCode);
  74. // // 上传成功关闭发布器
  75. // swan.closeCommunityEditor();
  76. // },
  77. // fail: function (err) {
  78. // console.log('错误码:' + err.errCode);
  79. // console.log('错误信息:' + err.errMsg);
  80. // }
  81. // });
  82. swan.closeCommunityEditor();
  83. swan.showToast({
  84. title: '发布成功',
  85. icon: 'none'
  86. });
  87. },
  88. fail: function (err) {
  89. console.log('openCommunityEditor fail', err);
  90. swan.closeCommunityEditor();
  91. },
  92. complete: function (res) {
  93. console.log('openCommunityEditor complete', res);
  94. }
  95. });
  96. }
  97. });