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 文件的说明参考论坛。 配置示例如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>LSItemContentTypes</key>
<array>
<string>public.item</string>
<string>public.content</string>
</array>
</dict>
</array>
</dict>
</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有效
- 内部字段:
{
x:0, //左上角x坐标,数字类型
y:0, //左上角y坐标,数字类型
w:0, //宽度,数字类型
h:0, //高度,数字类型
}
arrowDirection:
- 类型:字符串
- 描述:(可选项)iPad中显示时,箭头指向的方向,只iPad有效
- 默认值:any
- 取值范围
- left // 指向左边
- right // 指向右边
- up // 指向上边
- down // 指向下边
- any // 系统根据页面情况选择合适的方向
contentSize:
- 类型:JSON 对象
- 描述:(可选项)iPad中显示时,对话框大小,只iPad有效,iOS不支持
- 内部字段:
{
w:0, //宽度,数字类型
h:0 //高度,数字类型
}
fixedOn:
- 类型:字符串类型
- 描述:(可选项)模块视图添加到指定 frame 的名字(只指 frame,传 window 无效)
- 默认:模块依附于当前 window
示例代码
var sharedModule = api.require('shareAction');
sharedModule.share({
text: '纯文本信息',
type: 'text'
});
可用性
iOS 系统,Android 系统
可提供的 1.0.0 及更高版本
shareText
分享文本到系统分享控件(通过系统分享控件分享到目标APP)
params
text:
- 类型:字符串
- 描述:要分享的文本信息
- 注意:
- 在 iOS 端不支持纯文字分享到微信,建议通过剪切板实现
- 在 Android 端不支持纯文字分享到微信朋友圈,可分享给微信好友
iPad:
- 类型:JSON
- 描述:(可选项)iPad 上分享控件的样式配置,若不传则在iPad上显示默认样式
- 内部字段:
{
arrowRect: { //JSON 对象,iPad中显示时箭头指向的位置
x:0, //左上角x坐标,数字类型
y:0, //左上角y坐标,数字类型
w:0, //宽度,数字类型
h:0, //高度,数字类型
},
contentSize: { //JSON 对象,对话框大小
w:0, //宽度,数字类型
h:0 //高度,数字类型
},
fixedOn:'', //字符串类型;对话框所依附的窗口;默认:于当前 window
arrowDirection: '', //字符串类型;箭头指向的方向;默认:any;取值范围:
//left:指向左边
//right:指向右边
//up:指向上边
//down:指向下边
//any:系统根据页面情况选择合适的方向
}
示例代码
var sharedModule = api.require('shareAction');
sharedModule.shareText({
text: '纯文本信息'
});
可用性
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上显示默认样式
- 内部字段:
{
arrowRect: { //JSON 对象,iPad中显示时箭头指向的位置
x:0, //左上角x坐标,数字类型
y:0, //左上角y坐标,数字类型
w:0, //宽度,数字类型
h:0, //高度,数字类型
},
contentSize: { //JSON 对象,对话框大小
w:0, //宽度,数字类型
h:0 //高度,数字类型
},
fixedOn:'', //字符串类型;对话框所依附的窗口;默认:于当前 window
arrowDirection: '', //字符串类型;箭头指向的方向;默认:any;取值范围:
//left:指向左边
//right:指向右边
//up:指向上边
//down:指向下边
//any:系统根据页面情况选择合适的方向
}
示例代码
var sharedModule = api.require('shareAction');
sharedModule.shareImage({
text: '纯文本信息',
images: []
});
可用性
iOS 系统,Android 系统
可提供的 1.0.8 及更高版本
shareFile
打开分享对话框,分享文件
shareFile({params})
params
path:
- 类型:字符串
- 描述:要分享的文件路径,要求本地路径(fs://、widget://),Android 平台不支持 widget:// 路径
text:
- 类型:字符串
- 描述:(可选项)要分享的文本信息仅支持 android 端
iPad:
- 类型:JSON
- 描述:(可选项)iPad 上分享控件的样式配置,若不传则在iPad上显示默认样式
- 内部字段:
{
arrowRect: { //JSON 对象,iPad中显示时箭头指向的位置
x:0, //左上角x坐标,数字类型
y:0, //左上角y坐标,数字类型
w:0, //宽度,数字类型
h:0, //高度,数字类型
},
contentSize: { //JSON 对象,对话框大小
w:0, //宽度,数字类型
h:0 //高度,数字类型
},
fixedOn:'', //字符串类型;对话框所依附的窗口;默认:于当前 window
arrowDirection: '', //字符串类型;箭头指向的方向;默认:any;取值范围:
//left:指向左边
//right:指向右边
//up:指向上边
//down:指向下边
//any:系统根据页面情况选择合适的方向
}
示例代码
var sharedModule = api.require('shareAction');
sharedModule.shareFile({
text: '文本信息',
path: ''
});
可用性
iOS 系统,Android 系统
可提供的 1.0.8 及更高版本
shareAudio
打开分享对话框,分享音频文件
shareAudio({params})
params
path:
- 类型:字符串
- 描述:要分享的音频路径,要求本地路径(fs://、widget://),Android 平台不支持 widget:// 路径
text:
- 类型:字符串
- 描述:(可选项)要分享的文本信息仅支持 android 端
iPad:
- 类型:JSON
- 描述:(可选项)iPad 上分享控件的样式配置
- 内部字段:
{
arrowRect: { //JSON 对象,iPad中显示时箭头指向的位置
x:0, //左上角x坐标,数字类型
y:0, //左上角y坐标,数字类型
w:0, //宽度,数字类型
h:0, //高度,数字类型
},
contentSize: { //JSON 对象,对话框大小
w:0, //宽度,数字类型
h:0 //高度,数字类型
},
fixedOn:'', //字符串类型;对话框所依附的窗口;默认:于当前 window
arrowDirection: '', //字符串类型;箭头指向的方向;默认:any;取值范围:
//left:指向左边
//right:指向右边
//up:指向上边
//down:指向下边
//any:系统根据页面情况选择合适的方向
}
示例代码
var sharedModule = api.require('shareAction');
sharedModule.shareAudio({
text: '文本信息',
path: ''
});
可用性
iOS 系统,Android 系统
可提供的 1.0.8 及更高版本
shareUrl
打开分享对话框,分享Url
shareUrl({params})
params
url:
- 类型:字符串
- 描述:要分享的有效网址
text:
- 类型:字符串
- 描述:(可选项)要分享的文本信息
thumbnail:
- 类型:字符串
- 描述:(可选项)分享时的缩略图;要求本地路径(fs://、widget://)。若不传则不显示。仅支持 iOS 平台
iPad:
- 类型:JSON
- 描述:(可选项)iPad 上分享控件的样式配置,若不传则在iPad上显示默认样式
- 内部字段:
{
arrowRect: { //JSON 对象,iPad中显示时箭头指向的位置
x:0, //左上角x坐标,数字类型
y:0, //左上角y坐标,数字类型
w:0, //宽度,数字类型
h:0, //高度,数字类型
},
contentSize: { //JSON 对象,对话框大小
w:0, //宽度,数字类型
h:0 //高度,数字类型
},
fixedOn:'', //字符串类型;对话框所依附的窗口;默认:于当前 window
arrowDirection: '', //字符串类型;箭头指向的方向;默认:any;取值范围:
//left:指向左边
//right:指向右边
//up:指向上边
//down:指向下边
//any:系统根据页面情况选择合适的方向
}
示例代码
var sharedModule = api.require('shareAction');
sharedModule.shareUrl({
text: '文本信息',
url: ''
});
可用性
iOS 系统,Android 系统
可提供的 1.0.8 及更高版本
getSupportSharedAppInfos
获取所有支持分享的app的信息 (注意:该方法仅支持android)
getSupportSharedAppInfos({params})
params
type:
- 类型:字符串
- 描述:(可选项)支持分享的类型
- 默认值:text
- 取值范围:
- text //纯文本
- image //图片
callback(ret)
ret:
- 类型:JSON对象
- 内部字段:
{
appInfos:[{
packageName:'', // 字符串;app的包名
launcherActivityName:'', // 字符串;app的入口activity名称
appName:'' // 字符串;app的名称
}]
}
可用性
Android 系统
可提供的 1.0.7 及更高版本
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。