share.html 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
  6. <meta name="HandheldFriendly" content="true">
  7. <meta name="MobileOptimized" content="320">
  8. <title>Share Document</title>
  9. <link rel="stylesheet" type="text/css" href="res/doc.css" charset="utf-8">
  10. <link rel="stylesheet" type="text/css" href="res/prettify.sons.css" charset="utf-8">
  11. <script type="text/javascript" src="res/doc.js" charset="utf-8"></script><script type="text/javascript" src="res/prettify.js" charset="utf-8"></script>
  12. </head>
  13. <body><div id="content" class="content">
  14. <h1><a name="plus.share">share</a></h1>
  15. <p>Share模块管理客户端的社交分享功能,提供调用终端社交软件的分享能力。通过plus.share可获取社交分享管理对象。</p>
  16. <h2>方法:</h2>
  17. <ul>
  18. <li>
  19. <a href="#plus.share.getServices">getServices</a>: 获取分享服务</li>
  20. <li>
  21. <a href="#plus.share.sendWithSystem">sendWithSystem</a>: 使用系统组件发送分享</li>
  22. </ul>
  23. <h2>对象:</h2>
  24. <ul>
  25. <li>
  26. <a href="#plus.share.AuthOptions">AuthOptions</a>: JSON对象,分享授权认证参数选项</li>
  27. <li>
  28. <a href="#plus.share.Authorize">Authorize</a>: 分享授权控件对象</li>
  29. <li>
  30. <a href="#plus.share.GeoPosition">GeoPosition</a>: JSON对象,用户位置信息</li>
  31. <li>
  32. <a href="#plus.share.ShareService">ShareService</a>: 分享服务对象</li>
  33. <li>
  34. <a href="#plus.share.ShareServerIdentity">ShareServerIdentity</a>: 分享服务标识</li>
  35. <li>
  36. <a href="#plus.share.ShareMessage">ShareMessage</a>: JSON对象,分享消息对象</li>
  37. <li>
  38. <a href="#plus.share.ShareMessageExtra">ShareMessageExtra</a>: JSON对象,保存分享消息扩展信息</li>
  39. <li>
  40. <a href="#plus.share.WeixinMiniProgramOptions">WeixinMiniProgramOptions</a>: JSON对象,微信小程序信息</li>
  41. </ul>
  42. <h2>回调方法:</h2>
  43. <ul>
  44. <li>
  45. <a href="#plus.share.ServicesSuccessCallback">ServicesSuccessCallback</a>: 获取分享服务成功回调</li>
  46. <li>
  47. <a href="#plus.share.AuthorizeSuccessCallback">AuthorizeSuccessCallback</a>: 分享授权认证成功回调</li>
  48. <li>
  49. <a href="#plus.share.ShareSuccessCallback">ShareSuccessCallback</a>: 分享操作成功回调</li>
  50. <li>
  51. <a href="#plus.share.ShareErrorCallback">ShareErrorCallback</a>: 分享操作失败回调</li>
  52. </ul>
  53. <h2>权限:</h2>
  54. <p>permissions</p>
  55. <pre class="prettyprint linenums">
  56. {
  57. // ...
  58. "permissions":{
  59. // ...
  60. "Share": {
  61. "description": "分享"
  62. }
  63. }
  64. }
  65. </pre>
  66. <h1><a name="plus.share.AuthOptions">AuthOptions</a></h1>
  67. <p>JSON对象,分享授权认证参数选项</p>
  68. <pre class="prettyprint linenums">
  69. interface plus.share.AuthOptions {
  70. attribute String appid;
  71. attribute String appkey;
  72. attribute String appsecret;
  73. attribute String redirect_uri;
  74. }
  75. </pre>
  76. <h2>说明:</h2>
  77. <p class="des">
  78. 此对象支持的属性值由分享服务的授权认证模块定义。
  79. </p>
  80. <h2>属性:</h2>
  81. <ul>
  82. <li>appid: <em>(<font class="type">String</font>
  83. 类型
  84. )</em>分享服务平台申请的appid<br><p>
  85. 动态设置分享服务授权认证时需要使用的appid,仅需要此参数的分享服务(如“微信”、“QQ”)支持。
  86. 如果未设置则使用运行环境中内置的appid值(如在HBuilder中可在manifest.json的“SDK配置”项中进行设置)。
  87. </p>
  88. </li>
  89. <li>appkey: <em>(<font class="type">String</font>
  90. 类型
  91. )</em>分享服务平台申请的appkey<br><p>
  92. 动态设置分享服务授权认证时需要使用的appkey,仅需要此参数的分享服务(如“新浪微博”)支持。
  93. 如果未设置则使用运行环境中内置的appkey值(如在HBuilder中可在manifest.json的“SDK配置”项中进行设置)。
  94. </p>
  95. </li>
  96. <li>appsecret: <em>(<font class="type">String</font>
  97. 类型
  98. )</em>分享服务平台申请的appsecret<br><p>
  99. 动态设置分享服务中需要使用的appsecret,仅需要此参数的分享服务(如“微信”、“新浪微博”)支持。
  100. 如果未设置则使用运行环境中内置的appsecret值(如在HBuilder中可在manifest.json的“SDK配置”项中进行设置);当开放平台申请的appsecret值涉及到安全问题时,可在应用运行时从服务器获取,然后通过此api动态设置。
  101. </p>
  102. </li>
  103. <li>redirect_url: <em>(<font class="type">String</font>
  104. 类型
  105. )</em>分享服务平台申请的redirect_url<br><p>
  106. 动态设置分享服务中需要使用的redirect_url,仅需要此参数的登录授权服务(如“新浪微博登录”)支持。
  107. 如果未设置则使用运行环境中内置的redirect_url值(如在HBuilder中可在manifest.json的SDK配置项中进行设置)。
  108. </p>
  109. </li>
  110. </ul>
  111. <h1><a name="plus.share.Authorize">Authorize</a></h1>
  112. <p>分享授权控件对象</p>
  113. <pre class="prettyprint linenums">
  114. interface plus.share.Authorize{
  115. // Methods
  116. function void load(id);
  117. function void setVisible(visible);
  118. // Events
  119. function void onloaded();
  120. function void onauthenticated();
  121. function void onerror();
  122. }
  123. </pre>
  124. <h2>说明:</h2>
  125. <p class="des">
  126. Authorize对象表示分享控件对象,用于在窗口中显示分享控件,使用此对象可自定义分享授权界面。
  127. </p>
  128. <h2>构造:</h2>
  129. <ul><li>
  130. <a href="#plus.share.Authorize.Authorize(id,display)">Authorize(id,display)</a>: 创建分享授权控件对象</li></ul>
  131. <h2>方法:</h2>
  132. <ul>
  133. <li>
  134. <a href="#plus.share.Authorize.load">load</a>: 加载分享授权页面</li>
  135. <li>
  136. <a href="#plus.share.Authorize.setVisible">setVisible</a>: 设置分享授权控件是否可见</li>
  137. </ul>
  138. <h2>事件:</h2>
  139. <ul>
  140. <li>
  141. <a href="#plus.share.Authorize.onloaded">onloaded</a>: 分享控件加载完成事件</li>
  142. <li>
  143. <a href="#plus.share.Authorize.onauthenticated">onauthenticated</a>: 分享授权认证成功事件</li>
  144. <li>
  145. <a href="#plus.share.Authorize.onerror">onerror</a>: 分享授权认证失败事件</li>
  146. </ul>
  147. <h1><a name="plus.share.GeoPosition">GeoPosition</a></h1>
  148. <p>JSON对象,用户位置信息</p>
  149. <pre class="prettyprint linenums">
  150. interface plus.share.GeoPosition {
  151. attribute Number latitude;
  152. attribute Number longitude;
  153. }
  154. </pre>
  155. <h2>说明:</h2>
  156. <p class="des">
  157. GeoPosition对象用于表示用户分享消息时的位置信息。用于标识分享操作时用户的位置信息。
  158. </p>
  159. <h2>属性:</h2>
  160. <ul>
  161. <li>latitude: <em>(<font class="type">Number</font>
  162. 类型
  163. )</em>用户位置的纬度坐标信息<br>
  164. </li>
  165. <li>longitude: <em>(<font class="type">Number</font>
  166. 类型
  167. )</em>用户位置的经度坐标信息<br>
  168. </li>
  169. </ul>
  170. <h1><a name="plus.share.ShareService">ShareService</a></h1>
  171. <p>分享服务对象</p>
  172. <pre class="prettyprint linenums">
  173. interface plus.share.ShareService {
  174. // Attributes
  175. attribute DOMString id;
  176. attribute DOMString description;
  177. attribute Boolean authenticated;
  178. attribute DOMString accessToken;
  179. attribute Boolean nativeClient;
  180. // Methods
  181. function void authorize(successCallback, errorCallback, options);
  182. function void forbid();
  183. function void send(message);
  184. function void launchMiniProgram(options);
  185. }
  186. </pre>
  187. <h2>说明:</h2>
  188. <p class="des">
  189. ShareService对象用于表示分享服务,在JS中为对象,用于向系统请求分享操作。
  190. </p>
  191. <h2>属性:</h2>
  192. <ul>
  193. <li>
  194. <a href="#plus.share.ShareService.id">id</a>: 分享服务标识</li>
  195. <li>
  196. <a href="#plus.share.ShareService.description">description</a>: 分享服务描述</li>
  197. <li>
  198. <a href="#plus.share.ShareService.authenticated">authenticated</a>: 是否授权认证</li>
  199. <li>
  200. <a href="#plus.share.ShareService.accessToken">accessToken</a>: 授权认证信息</li>
  201. <li>
  202. <a href="#plus.share.ShareService.nativeClient">nativeClient</a>: 是否存在对应的分享客户端</li>
  203. </ul>
  204. <h2>方法:</h2>
  205. <ul>
  206. <li>
  207. <a href="#plus.share.ShareService.authorize">authorize</a>: 授权认证操作</li>
  208. <li>
  209. <a href="#plus.share.ShareService.forbid">forbid</a>: 取消授权认证</li>
  210. <li>
  211. <a href="#plus.share.ShareService.send">send</a>: 发送分享</li>
  212. <li>
  213. <a href="#plus.share.ShareService.launchMiniProgram">launchMiniProgram</a>: 调用微信小程序</li>
  214. </ul>
  215. <h1><a name="plus.share.ShareServerIdentity">ShareServerIdentity</a></h1>
  216. <p>分享服务标识</p>
  217. <h2>常量:</h2>
  218. <ul>
  219. <li>"sinaweibo": <em>(<font class="type">DOMString</font>
  220. 类型
  221. )</em>新浪微博<br>
  222. </li>
  223. <li>"tencentweibo": <em>(<font class="type">DOMString</font>
  224. 类型
  225. )</em>腾讯微博<br>
  226. </li>
  227. <li>"weixin": <em>(<font class="type">DOMString</font>
  228. 类型
  229. )</em>微信<br>
  230. </li>
  231. </ul>
  232. <h1><a name="plus.share.ShareMessage">ShareMessage</a></h1>
  233. <p>JSON对象,分享消息对象</p>
  234. <pre class="prettyprint linenums">
  235. interface plus.share.ShareMessage {
  236. attribute String type;
  237. attribute String content;
  238. attribute String[] thumbs;
  239. attribute String[] pictures;
  240. attribute String media;
  241. attribute String href;
  242. attribute String title;
  243. attribute JSON extra;
  244. attribute GEOPosition geo;
  245. attribute ShareMessageExtra extra;
  246. attribute WeixinMiniProgramOptions miniProgram;
  247. attribute String interface;
  248. }
  249. </pre>
  250. <h2>说明:</h2>
  251. <p class="des">ShareMessage对象用于表示分享消息内容,在JS中为JSON对象,用于向系统发送分享信息操作。</p>
  252. <h2>属性:</h2>
  253. <ul>
  254. <li>type: <em>(<font class="type">String</font>
  255. 类型
  256. )</em>分享消息的类型<br><p>
  257. 微信分享平台,可取值:
  258. "web"-分享网页类型,title(必填)、content(必填)、thumbs(必填)、href(网页url,必填)属性值有效;
  259. "text"-分享文字类型,content(必填)属性值有效;
  260. "image"-分享图片类型,pictures(必填)属性值有效;
  261. "music"-分享音乐类型,title(必填)、content(必填)、thumbs(必填)、media(音乐url,必填)属性值有效;
  262. "video"-分享视频类型,title(必填)、content(必填)、thumbs(必填)、media(视频url,必填)属性值有效;
  263. "miniProgram"-分享小程序类型(仅支持分享到好友),title(必填)、content(必填)、thumbs(图片小于128K,宽高比为5:4,必填)、miniProgram(小程序参数,必填)属性值有效;
  264. 没有设置type时,如果href值有效则默认值为"web",如果pictures有效则默认值为"image",否则默认值为"text"。
  265. 新浪微博分享平台,可取值:
  266. "web"-分享网页类型,content、href(网页url,必填),分享链接添加到内容之后;
  267. "text"-分享文字类型,content(必填)属性有效,可在内容中直接插入链接地址;
  268. "image"-分享图片类型,content(可选)、thumbs(可选)、pictures(必填)属性有效;
  269. "video"-分享视频类型,content(可选)、thumbs(可选)、media(本地视频文件,必填)属性有效;
  270. 没有设置type时,如果存在thumbs则默认值为"image",如果存在href则默认值为"web",否则默认为"text"。
  271. QQ分享平台,可取值:
  272. "text"-分享文字类型,href(iOS可选,Android必填)、title(必填,最长30个字符)、content(可选,最长40个字符)、pictures或thumbs(可选,优先pictures,iOS不支持)属性有效;
  273. "image"-分享图片类型,pictures或thumbs(必填,优先pictures)属性有效;
  274. "music"-分享音乐类型,title(必填,最长30个字符)、content(可选,最长40个字符)、href(必填)、media(音乐url,必填)、pictures或thumbs(可选,优先pictures)属性值有效;
  275. 没有设置type时,默认值"text"。
  276. </p>
  277. </li>
  278. <li>content: <em>(<font class="type">String</font>
  279. 类型
  280. )</em>分享消息的文字内容<br>
  281. </li>
  282. <li>pictures: <em>(<font class="type">Array</font>[
  283. <font class="type">String</font>
  284. ]
  285. 类型
  286. )</em>分享消息的图片<br><p>
  287. 分享消息中包含的图片路径,仅支持本地路径。
  288. 若分享平台仅支持提交一张图片,传入多张图片则仅提交第一张图片。
  289. 如果未指定type类型,优先级顺序为:pictures&gt;content(即设置了pictures则认为分享图片类型)。
  290. </p>
  291. </li>
  292. <li>thumbs: <em>(<font class="type">Array</font>[
  293. <font class="type">Stromg</font>
  294. ]
  295. 类型
  296. )</em>分享消息的缩略图<br><p>
  297. 分享消息中包含的缩略图路径,支持本地路径及网络路径。
  298. 若分享平台仅支持提交一张图片,传入多张图片则仅提交第一张图片。
  299. 如果分享平台的信息不支持缩略图,若没有设置消息的图片(pictures)则使用缩略图,否则忽略其属性值。
  300. 注意:图片有大小限制,推荐图片小于20Kb。
  301. </p>
  302. </li>
  303. <li>media: <em>(<font class="type">Strubg</font>
  304. 类型
  305. )</em>分享的多媒体资源<br><p>
  306. 分享的多媒体资源地址,当type值为"music"、"video"时有效。
  307. 注意:
  308. 微信分享平台支持音乐、视频类型,仅支持网络地址(以http://或https://开头);
  309. QQ分享平台支持音乐类型,仅支持网络路径(以http://或https://开头);
  310. 新浪微博分享平台支持视频类型,仅支持本地文件路径。
  311. </p>
  312. </li>
  313. <li>href: <em>(<font class="type">String</font>
  314. 类型
  315. )</em>分享独立的链接<br><p>
  316. 分享资源地址,仅支持网络地址(以http://或https://开头)。
  317. 如果未指定type类型,优先级顺序为:href&gt;pictures&gt;content(即设置了href则认为分享网页类型)。
  318. </p>
  319. </li>
  320. <li>title: <em>(<font class="type">String</font>
  321. 类型
  322. )</em>分享消息的标题<br><p>
  323. 仅微信分享网页、音频、视频、小程序类型时支持。
  324. </p>
  325. </li>
  326. <li>geo: <em>(<a href="#plus.share.GeoPosition">GeoPosition</a>
  327. 类型
  328. )</em>分享消息中包含的用户地理信息数据<br>
  329. </li>
  330. <li>extra: <em>(<a href="#plus.share.ShareMessageExtra">ShareMessageExtra</a>
  331. 类型
  332. )</em>分享消息扩展参数<br>
  333. </li>
  334. <li>miniProgram: <em>(<a href="#plus.share.WeixinMiniProgramOptions">WeixinMiniProgramOptions</a>
  335. 类型
  336. )</em>分享微信小程序参数<br><p>
  337. 仅微信分享小程序类型时支持。
  338. </p>
  339. </li>
  340. <li>interface: <em>(<font class="type">String</font>
  341. 类型
  342. )</em>分享消息的模式<br><p>
  343. 可取值:
  344. "auto" - 自动选择,如果已经安装微博客户端则采用编辑界面进行分享,否则采用无界面分享;
  345. "slient" - 静默分享,采用无界面模式进行分享;
  346. "editable" - 进入编辑界面,用户确认分享内容后发送,如果当前未安装微博客户端则触发错误回调。
  347. 默认值为"auto"。
  348. (仅新浪微博分享时生效)
  349. </p>
  350. </li>
  351. </ul>
  352. <h1><a name="plus.share.ShareMessageExtra">ShareMessageExtra</a></h1>
  353. <p>JSON对象,保存分享消息扩展信息</p>
  354. <pre class="prettyprint linenums">
  355. interface plus.share.ShareMessageExtra {
  356. attribute String scene;
  357. }
  358. </pre>
  359. <h2>说明:</h2>
  360. <p class="des">
  361. ShareMessageExtra对象用于保存各分享平台扩展的参数,用于自定义分享功能。
  362. </p>
  363. <h2>属性:</h2>
  364. <ul><li>scene: <em>(<font class="type">String</font>
  365. 类型
  366. )</em>微信分享场景,仅微信分享平台有效<br><p>
  367. 可取值:
  368. "WXSceneSession"分享到微信的“我的好友”;
  369. "WXSceneTimeline"分享到微信的“朋友圈”中;
  370. "WXSceneFavorite"分享到微信的“我的收藏”中。
  371. 默认值为"WXSceneSession"。
  372. </p>
  373. </li></ul>
  374. <h1><a name="plus.share.WeixinMiniProgramOptions">WeixinMiniProgramOptions</a></h1>
  375. <p>JSON对象,微信小程序信息</p>
  376. <pre class="prettyprint linenums">
  377. interface plus.share.WeixinMiniProgramOptions {
  378. attribute String id;
  379. attribute String path;
  380. attribute Nnumber type;
  381. attribute webUrl;
  382. }
  383. </pre>
  384. <h2>说明:</h2>
  385. <p class="des">
  386. 用于配置分享小程序的参数,如小程序标识、页面路径等。
  387. 注意:分享的小程序需要在微信开放平台关联的开发者账号下,否则会分享失败。
  388. </p>
  389. <h2>属性:</h2>
  390. <ul>
  391. <li>id: <em>(<font class="type">String</font>
  392. 类型
  393. )</em>微信小程序ID<br><p>
  394. 注意:是微信小程序的原始ID("g_"开头的字符串)。
  395. </p>
  396. </li>
  397. <li>path: <em>(<font class="type">String</font>
  398. 类型
  399. )</em>微信小程序打开的页面路径<br>
  400. </li>
  401. <li>type: <em>(<font class="type">Number</font>
  402. 类型
  403. )</em>微信小程序版本类型<br><p>
  404. 可取值:
  405. 0-正式版;
  406. 1-测试版;
  407. 2-体验版。
  408. 默认值为0。
  409. </p>
  410. </li>
  411. <li>webUrl: <em>(<font class="type">String</font>
  412. 类型
  413. )</em>兼容低版本的网页链接<br>
  414. </li>
  415. </ul>
  416. <h1><a name="plus.share.ServicesSuccessCallback">ServicesSuccessCallback</a></h1>
  417. <p>获取分享服务成功回调</p>
  418. <pre class="prettyprint linenums">
  419. void ServicesSuccessCallback(services){
  420. // Get share services success code
  421. }
  422. </pre>
  423. <h2>说明:</h2>
  424. <p class="des">
  425. 当获取分享服务列表成功时的回调函数,用于返回终端支持的分享服务列表。
  426. </p>
  427. <h2>参数:</h2>
  428. <ul><li>services:
  429. <em>(
  430. <font class="type">Array</font>[
  431. <a href="#plus.share.ShareService">ShareService</a>
  432. ]
  433. )
  434. 必选 </em>数组,运行环境支持的分享服务列表<br>
  435. 运行环境支持的分享服务列表数组,可通过services.length获取分享服务列表的数目。
  436. </li></ul>
  437. <h2>返回值:</h2>
  438. <font class="type">void</font>
  439. : 无<h1><a name="plus.share.AuthorizeSuccessCallback">AuthorizeSuccessCallback</a></h1>
  440. <p>分享授权认证成功回调</p>
  441. <pre class="prettyprint linenums">
  442. void AuthorizeSuccessCallback(services){
  443.   // Authorize success code
  444. }
  445. </pre>
  446. <h2>说明:</h2>
  447. <p class="des">
  448. 分享服务授权认证操作成功时调用。
  449. </p>
  450. <h2>参数:</h2>
  451. <ul><li>service:
  452. <em>(
  453. <a href="#plus.share.ShareService">ShareService</a>
  454. )
  455. 必选 </em>授权认证操作的分享服务对象<br>
  456. </li></ul>
  457. <h2>返回值:</h2>
  458. <font class="type">void</font>
  459. : 无<h1><a name="plus.share.ShareSuccessCallback">ShareSuccessCallback</a></h1>
  460. <p>分享操作成功回调</p>
  461. <pre class="prettyprint linenums">
  462. void ShareSuccessCallback(){
  463. // Share success code
  464. }
  465. </pre>
  466. <h2>说明:</h2>
  467. <p class="des">
  468. 分享操作成功回调函数,当分享操作成功时调用。
  469. </p>
  470. <h2>参数:</h2>
  471. <p>无</p>
  472. <h2>返回值:</h2>
  473. <font class="type">void</font>
  474. : 无<h1><a name="plus.share.ShareErrorCallback">ShareErrorCallback</a></h1>
  475. <p>分享操作失败回调</p>
  476. <pre class="prettyprint linenums">
  477. void ShareErrorCallback(error){
  478. // Error
  479. var code = error.code; // 错误编码
  480. var message = error.message; // 错误描述信息
  481. }
  482. </pre>
  483. <h2>说明:</h2>
  484. <p class="des">
  485. 当分享操作失败时的回调函数,用于返回分享相关操作失败的错误信息。
  486. </p>
  487. <h2>参数:</h2>
  488. <ul><li>error:
  489. <em>(
  490. <font class="type">DOMException</font>
  491. )
  492. 必选 </em>分享操作失败错误信息<br>
  493. 可通过error.code(Number类型)获取错误编码;
  494. 可通过error.message(String类型)获取错误描述信息。
  495. </li></ul>
  496. <h2>返回值:</h2>
  497. <font class="type">void</font>
  498. : 无<br><br>
  499. </div></body>
  500. </html>