phonegap/cordova开发中的分享功能

本文深入探讨了cordova-plugin-x-socialsharing插件的使用方法,包括如何安装、支持的功能、平台兼容性及常见错误排查。特别关注了分享内容的多样化,如链接、图片、文本等,并详细展示了如何利用此插件实现跨平台的分享操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前有做过网页的分享,用的是百度分享。初入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
//这个方法执行后会调出分享的选择面板,来选择要分享到的平台

这是自测时的截图,列表显示出来很多,这是一半
仔细看发现,里面没有“朋友圈”!
测试发现,只有包含图片时才会显示“朋友圈”
出现了朋友圈

列表会显示出什么好像跟设备上安装的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的分享都会列出常用的分享平台,如图:

socialsharing并未提供类似于这样的功能。目前没搜到这样的插件,大概需要单独来实现了

参考文章

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

混合app分享的url

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

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值