phonegap/cordova开发中的分享功能

之前有做过网页的分享,用的是百度分享。初入app圈以为直接使用网页的方法就可以了,稍稍调研了一下发现根本不是这么回事。

本着“网络资源无限”的原则,发现了一个分享插件cordova-plugin-x-socialsharing,查看去这里。

插件socialsharing

socialsharing支持的分享内容包括链接、图片、文本

支持的平台

android全支持
IOS6+
windows phone部分支持

安装插件

可以在线安装git插件包,看官网教程吧,非常简单的
作者已经将插件同步到了cordova plugs,所以可以直接使用来安装
cordova plugin add cordova-plugin-x-socialsharing
cordova prepare

使用

share方法

window.plugins.socialsharing.share
//这个方法执行后会调出分享的选择面板,来选择要分享到的平台

phonegap/cordova开发中的分享功能_第1张图片
仔细看发现,里面没有“朋友圈”!
测试发现,只有包含图片时才会显示“朋友圈”
phonegap/cordova开发中的分享功能_第2张图片

列表会显示出什么好像跟设备上安装的app有关系,下面是示例代码
<button onclick="window.plugins.socialsharing.share('Message only')">分享文本</button>
<button onclick="window.plugins.socialsharing.share('testing...', '我的应用名')">分享文本和应用名</button>
<button onclick="window.plugins.socialsharing.share(null, null, null, 'http://www.x-services.nl')">只分享链接</button>
<button onclick="window.plugins.socialsharing.share('Message and link', null, null, 'http://www.x-services.nl')">分享文本和链接</button>
<button onclick="window.plugins.socialsharing.share(null, null, 'https://www.baidu.com/img/baidu_jgylogo3.gif', null)">分享图片</button>
// base64图片分享不支持android2.x
// 提示: 安卓设备下分享一个base64编码文件时,你可以通过第二参数来设置图片文件名
<button onclick="window.plugins.socialsharing.share(null, 'Android filename', 'data:image/png;base64,R0lGODlhDAAMALMBAP8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUKAAEALAAAAAAMAAwAQAQZMMhJK7iY4p3nlZ8XgmNlnibXdVqolmhcRQA7', null)">base64 图片分享</button>
// 第三参数可以是数组
<button onclick="window.plugins.socialsharing.share('Message and image', null, 'https://www.baidu.com/img/baidu_jgylogo3.gif', null)">分享信息和多个图片</button>
<button onclick="window.plugins.socialsharing.share('Message, image and link', null, 'https://www.baidu.com/img/baidu_jgylogo3.gif', 'http://www.x-services.nl')">文本、图片和链接</button>
<button onclick="window.plugins.socialsharing.share('Message, subject, image and link', 'The subject', 'https://www.baidu.com/img/baidu_jgylogo3.gif', 'http://www.x-services.nl')">文本、subject、图片、链接</button>

shareVia

除了share方法外还提供了shareVia方法,可以设置分享到官方未提及的平台。
有兴趣的话可以去研究一下源码

js接口源码

在插件里的www文件夹里有一个.js文件,代码很简单,但可以看到上述两个方法的参数

参数

shareVia比share多一个参数,要写在最前面,用来加分享平台的包名,比如微信是com.tencent.mm/com.tencent.mm.ui.tools.ShareImgUI(PS一直没试成功,大概和微信平台需要app id有关)
后面的参数分别是:
文本
subject(一直不知道这个是干嘛的)
图片(可以是数组)
url
onSuccess
onError

常用分享

国内很多app的分享都会列出常用的分享平台,如图:
phonegap/cordova开发中的分享功能_第3张图片
socialsharing并未提供类似于这样的功能。目前没搜到这样的插件,大概需要单独来实现了

参考文章

http://www.360doc.com/content/14/1201/18/9200790_429636386.shtml

混合app分享的url

分享中的url一般是http开头的网址
做分享不得不考虑分享页面的url,这大概和混合app的路由相关了
这方面还在研究中,有结果再来补充

你可能感兴趣的:(phonegap/cordova开发中的分享功能)