shareAction

来自于:官方立即使用

share shareText shareImage shareFile shareAudio shareUrl getSupportSharedAppInfos

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

沙盒机制

每个 APP 程序都有一个独立的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒。应用必须待在自己的沙盒里,其他应用不能访问该沙盒(除非其主动通过shareAction模块分享资源到目标APP,接受其他APP分享来的文件,可通过 api 对象下的addEventListener监听appintent事件来获取)。当然该应用也不能访问其它应用的沙盒(某些系统资源除外,如系统相册等,编译之前需申请访问权限)。在Android系统上sdcard 中的公共目录只要 app 有读写权限就可以访问。

系统分享

通过系统分享,能将本 APP 沙盒中的文本、图片、文件等资源分享给可接受的 APP,如微信、QQ、支付宝、新浪微博等。同时,在 APICloud 平台上可通过 api 对象下的addEventListener 接口监听 appintent 事件来获取其他 APP 分享来的资源信息。

在 iOS 端若想要自己的 APP 在系统分享列表中显示,需要配置 Info.plist 文件。有关 Info.plist 文件的说明参考论坛。 配置示例如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5. <key>CFBundleDocumentTypes</key>
  6. <array>
  7. <dict>
  8. <key>LSItemContentTypes</key>
  9. <array>
  10. <string>public.item</string>
  11. <string>public.content</string>
  12. </array>
  13. </dict>
  14. </array>
  15. </dict>
  16. </plist>

字段解释:

  • CFBundleDocumentTypes:指的是当前app可以接收文档的类型,比如图片啊、文档
  • LSItemContentTypes:指的是具体的可以接收的类型,比如txt、jpg、doc。这个key对应的是一个Array,Array中放的是支持类型的字段。具体Array放的字段,可以参考System-Declared Uniform Type Identifiers

注意:谨慎配置此功能,提交苹果商店时需要加上详细的说明,否则审核会被拒绝。

模块简述

shareAction 封装了调用系统分享功能的模块,通过该模块能够分享一些最常见的文本、图片、文件等信息到可接受的 APP,如微信、QQ、支付宝、新浪微博等。本模块兼容 iPad。

share

打开分享对话框

share({params})

params

text:

  • 类型:字符串
  • 描述:(可选项)要分享的文本信息,在iOS端,当type为image时,本参数会被忽略

type:

  • 类型:字符串
  • 描述:(可选项)分享文件的类型(iOS系统微信不支持纯文字的分享)
  • 默认值:text
  • 取值范围:
    • text //纯文本
    • image //图片
    • audio //音频文件
    • file //普通文件
    • url //网络链接

path:

  • 类型:字符串
  • 描述:(可选项)要分享的路径,若是‘file’或‘audio’类型,要求本地路径(fs://、widget://),若是url类型,需要有效的网址。若 images 不为空则模块忽略本参数。Android 平台不支持 widget:// 路径

images:

  • 类型:数组
  • 描述:(可选项)分享的图片路径组成的数组,仅当 type 为 image 时有效;要求本地路径(fs://、widget://)。若本参数不为空则模块忽略 path 参数。android 仅支持fs://路径

thumbnail:

  • 类型:字符串
  • 描述:(可选项)分享时的缩略图;要求本地路径(fs://、widget://)。若不传则不显示。仅支持 iOS 平台

arrowRect:

  • 类型:JSON 对象
  • 描述:(可选项)iPad中显示时,箭头指向的位置,只iPad有效
  • 内部字段:
  1. {
  2. x:0, //左上角x坐标,数字类型
  3. y:0, //左上角y坐标,数字类型
  4. w:0, //宽度,数字类型
  5. h:0, //高度,数字类型
  6. }

arrowDirection:

  • 类型:字符串
  • 描述:(可选项)iPad中显示时,箭头指向的方向,只iPad有效
  • 默认值:any
  • 取值范围
    • left // 指向左边
    • right // 指向右边
    • up // 指向上边
    • down // 指向下边
    • any // 系统根据页面情况选择合适的方向

contentSize:

  • 类型:JSON 对象
  • 描述:(可选项)iPad中显示时,对话框大小,只iPad有效,iOS不支持
  • 内部字段:
  1. {
  2. w:0, //宽度,数字类型
  3. h:0 //高度,数字类型
  4. }

fixedOn:

  • 类型:字符串类型
  • 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
  • 默认:模块依附于当前 window

示例代码

  1. var sharedModule = api.require('shareAction');
  2. sharedModule.share({
  3. text: '纯文本信息',
  4. type: 'text'
  5. });

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

shareText

分享文本到系统分享控件(通过系统分享控件分享到目标APP)

params

text:

  • 类型:字符串
  • 描述:要分享的文本信息
  • 注意:
    • 在 iOS 端不支持纯文字分享到微信,建议通过剪切板实现
    • 在 Android 端不支持纯文字分享到微信朋友圈,可分享给微信好友

iPad:

  • 类型:JSON
  • 描述:(可选项)iPad 上分享控件的样式配置,若不传则在iPad上显示默认样式
  • 内部字段:
  1. {
  2. arrowRect: { //JSON 对象,iPad中显示时箭头指向的位置
  3. x:0, //左上角x坐标,数字类型
  4. y:0, //左上角y坐标,数字类型
  5. w:0, //宽度,数字类型
  6. h:0, //高度,数字类型
  7. },
  8. contentSize: { //JSON 对象,对话框大小
  9. w:0, //宽度,数字类型
  10. h:0 //高度,数字类型
  11. },
  12. fixedOn:'', //字符串类型;对话框所依附的窗口;默认:于当前 window
  13. arrowDirection: '', //字符串类型;箭头指向的方向;默认:any;取值范围:
  14. //left:指向左边
  15. //right:指向右边
  16. //up:指向上边
  17. //down:指向下边
  18. //any:系统根据页面情况选择合适的方向
  19. }

示例代码

  1. var sharedModule = api.require('shareAction');
  2. sharedModule.shareText({
  3. text: '纯文本信息'
  4. });

可用性

iOS 系统,Android 系统

可提供的 1.0.8 及更高版本

shareImage

打开分享对话框,分享图片到目标 APP android多图片分享(即images参数)功能,会在android 7.0+ 并且在编译版本(targetVersion)为26时会出现一些兼容性问题,推荐使用share接口分享图片

shareImage({params})

params

images:

  • 类型:数组
  • 描述:要分享图片的路径组成的数组,要求本地路径(widget://、fs://)Android 平台不支持 widget://
  • 注意:分享单张图片时传一张即可

text:

  • 类型:字符串
  • 描述:(可选项)要分享的文本信息,仅支持 android 端

iPad:

  • 类型:JSON
  • 描述:(可选项)iPad 上分享控件的样式配置,若不传则在iPad上显示默认样式
  • 内部字段:
  1. {
  2. arrowRect: { //JSON 对象,iPad中显示时箭头指向的位置
  3. x:0, //左上角x坐标,数字类型
  4. y:0, //左上角y坐标,数字类型
  5. w:0, //宽度,数字类型
  6. h:0, //高度,数字类型
  7. },
  8. contentSize: { //JSON 对象,对话框大小
  9. w:0, //宽度,数字类型
  10. h:0 //高度,数字类型
  11. },
  12. fixedOn:'', //字符串类型;对话框所依附的窗口;默认:于当前 window
  13. arrowDirection: '', //字符串类型;箭头指向的方向;默认:any;取值范围:
  14. //left:指向左边
  15. //right:指向右边
  16. //up:指向上边
  17. //down:指向下边
  18. //any:系统根据页面情况选择合适的方向
  19. }

示例代码

  1. var sharedModule = api.require('shareAction');
  2. sharedModule.shareImage({
  3. text: '纯文本信息',
  4. images: []
  5. });

可用性

iOS 系统,Android 系统

可提供的 1.0.8 及更高版本

shareFile

打开分享对话框,分享文件

shareFile({params})

params

path:

  • 类型:字符串
  • 描述:要分享的文件路径,要求本地路径(fs://、widget://),Android 平台不支持 widget:// 路径

text:

  • 类型:字符串
  • 描述:(可选项)要分享的文本信息仅支持 android 端

iPad:

  • 类型:JSON
  • 描述:(可选项)iPad 上分享控件的样式配置,若不传则在iPad上显示默认样式
  • 内部字段:
  1. {
  2. arrowRect: { //JSON 对象,iPad中显示时箭头指向的位置
  3. x:0, //左上角x坐标,数字类型
  4. y:0, //左上角y坐标,数字类型
  5. w:0, //宽度,数字类型
  6. h:0, //高度,数字类型
  7. },
  8. contentSize: { //JSON 对象,对话框大小
  9. w:0, //宽度,数字类型
  10. h:0 //高度,数字类型
  11. },
  12. fixedOn:'', //字符串类型;对话框所依附的窗口;默认:于当前 window
  13. arrowDirection: '', //字符串类型;箭头指向的方向;默认:any;取值范围:
  14. //left:指向左边
  15. //right:指向右边
  16. //up:指向上边
  17. //down:指向下边
  18. //any:系统根据页面情况选择合适的方向
  19. }

示例代码

  1. var sharedModule = api.require('shareAction');
  2. sharedModule.shareFile({
  3. text: '文本信息',
  4. path: ''
  5. });

可用性

iOS 系统,Android 系统

可提供的 1.0.8 及更高版本

shareAudio

打开分享对话框,分享音频文件

shareAudio({params})

params

path:

  • 类型:字符串
  • 描述:要分享的音频路径,要求本地路径(fs://、widget://),Android 平台不支持 widget:// 路径

text:

  • 类型:字符串
  • 描述:(可选项)要分享的文本信息仅支持 android 端

iPad:

  • 类型:JSON
  • 描述:(可选项)iPad 上分享控件的样式配置
  • 内部字段:
  1. {
  2. arrowRect: { //JSON 对象,iPad中显示时箭头指向的位置
  3. x:0, //左上角x坐标,数字类型
  4. y:0, //左上角y坐标,数字类型
  5. w:0, //宽度,数字类型
  6. h:0, //高度,数字类型
  7. },
  8. contentSize: { //JSON 对象,对话框大小
  9. w:0, //宽度,数字类型
  10. h:0 //高度,数字类型
  11. },
  12. fixedOn:'', //字符串类型;对话框所依附的窗口;默认:于当前 window
  13. arrowDirection: '', //字符串类型;箭头指向的方向;默认:any;取值范围:
  14. //left:指向左边
  15. //right:指向右边
  16. //up:指向上边
  17. //down:指向下边
  18. //any:系统根据页面情况选择合适的方向
  19. }

示例代码

  1. var sharedModule = api.require('shareAction');
  2. sharedModule.shareAudio({
  3. text: '文本信息',
  4. path: ''
  5. });

可用性

iOS 系统,Android 系统

可提供的 1.0.8 及更高版本

shareUrl

打开分享对话框,分享Url

shareUrl({params})

params

url:

  • 类型:字符串
  • 描述:要分享的有效网址

text:

  • 类型:字符串
  • 描述:(可选项)要分享的文本信息

thumbnail:

  • 类型:字符串
  • 描述:(可选项)分享时的缩略图;要求本地路径(fs://、widget://)。若不传则不显示。仅支持 iOS 平台

iPad:

  • 类型:JSON
  • 描述:(可选项)iPad 上分享控件的样式配置,若不传则在iPad上显示默认样式
  • 内部字段:
  1. {
  2. arrowRect: { //JSON 对象,iPad中显示时箭头指向的位置
  3. x:0, //左上角x坐标,数字类型
  4. y:0, //左上角y坐标,数字类型
  5. w:0, //宽度,数字类型
  6. h:0, //高度,数字类型
  7. },
  8. contentSize: { //JSON 对象,对话框大小
  9. w:0, //宽度,数字类型
  10. h:0 //高度,数字类型
  11. },
  12. fixedOn:'', //字符串类型;对话框所依附的窗口;默认:于当前 window
  13. arrowDirection: '', //字符串类型;箭头指向的方向;默认:any;取值范围:
  14. //left:指向左边
  15. //right:指向右边
  16. //up:指向上边
  17. //down:指向下边
  18. //any:系统根据页面情况选择合适的方向
  19. }

示例代码

  1. var sharedModule = api.require('shareAction');
  2. sharedModule.shareUrl({
  3. text: '文本信息',
  4. url: ''
  5. });

可用性

iOS 系统,Android 系统

可提供的 1.0.8 及更高版本

getSupportSharedAppInfos

获取所有支持分享的app的信息 (注意:该方法仅支持android)

getSupportSharedAppInfos({params})

params

type:

  • 类型:字符串
  • 描述:(可选项)支持分享的类型
  • 默认值:text
  • 取值范围:
    • text //纯文本
    • image //图片

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. appInfos:[{
  3. packageName:'', // 字符串;app的包名
  4. launcherActivityName:'', // 字符串;app的入口activity名称
  5. appName:'' // 字符串;app的名称
  6. }]
  7. }

可用性

Android 系统

可提供的 1.0.7 及更高版本

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。