|
本帖最后由 jy 于 2018-5-28 14:45 编辑
1、分享 import share from '@system.share'
这个分享主要用于不同APP之间的数据传递,因此归到“界面交互”中,可以传递文本数据或文件数据
2、第三方分享 import share from '@service.share'
这个分享主要用于将快应用中的信息通过社交工具(微信、QQ、新浪微博等)分享出去,可以以图文、纯文字、纯图文、音乐、视频等形式进行分享,分享前需要在manifest.json 的 features 中对service.share进行appSign、wxkey、qqkey、sinakey等参数参数的设置,否则分享出去的内容都将以纯文字方式进行展示。
第三方分享时需要rom支持,部分厂商现有的rom还没有进行第三方分享适配,通过第三方分享出去的信息暂时只能以纯文字形式展示,甚至压根无法进行分享。
分享虽然初衷用于数据传递,但是将数据传递到社交APP上等同于进行分享,因此在rom不支持第三方分享的设备上,可以使用界面交互中的分享功能进行文本分享。
像华为就属于rom未适配第三方分享的厂商,已发布的快应用在华为设备上,如果通过第三方分享进行分享,系统是没有响应的。你可以通过system.device来判断手机厂商再选择分享方式,但是这样的弊端是得去摸索出还有哪些厂商也不支持第三方分享,而且一旦不支持的厂商将来对rom进行适配了,你的快应用程序还是会忽略第三方分享这种支持图文分享的方式。
如果你只想进行文字分享,建议你直接使用界面交互中的分享功能system.share,这个比较通用。
如果你想进行图文分享,建议你混用2种分享方式:
- import share from '@system.share'
- import shareSe from '@service.share'
-
- try{
- shareSe.share({
- shareType: 0,
- title: '图文标题',
- summary: '图文内容',
- imagePath: '/img/图文消息图片.jpg',
- targetUrl: 'http://图文消息链接地址',
- success: function (data) {
- msgbox('handling success')
- },
- fail: function (data, code) {
- msgbox(`handling fail, code = ${code}`)
- }
- });
- }catch(err){
- share.share({
- type: 'text/webviewhtml',
- data: '分享的文字消息',
- success: function (data) {
- console.log('handling success')
- },
- fail: function (data, code) {
- console.log(`handling fail, code = ${code}`)
- }
- });
- }
复制代码 |
|