mobShare

来自于:开发者

share shareTo login

概述

本模块已停止更新,请使用升级版模块 mobSharePlus (用法较本模块有所不同,请仔细阅读模块接口文档)。

mobShare封装了 mob 开发者服务平台的 shareSDK,使用此模块可实现分享文字、图片、图文、音乐、视频、链接到微信、微博、Facebook、Twitter等多个平台。调用 share 接口,模块会弹出可分享平台列表(可通过 config.xml 和 key.xml 文件配置信息自定义数量)菜单供用户选择分享。使用本模块需要到 http://www.mob.com 申请 shareSDK 模块的开发者账号,并创建应用获取到 shareSDK 的 Appkey。申请教程参考mob论坛技术贴

不能同时使用的模块:qq weibo wx weiXin等mob已包含的第三方SDK的模块; smsVerify和其他封装mob平台的模块

本模块封装了两套分享方案:

方案一,通过调用 share 接口弹出分享平台列表菜单,供用户选择点击分享;

方案二,开发者自定义分享平台列表,通过调用 shareTo 接口,达到分享到某平台的目的。

使用此模块之前需先配置 config.xml、key.xml 文件,key.xml 文件里配置了哪些平台,则弹出的分享菜单列表里就显示哪些平台。配置完毕,需通过云端编译生效。

config.xml 配置详解:

  • 名称:mobShare
  • 参数:urlScheme、apiKey、apiSecret
  • 配置示例:
  1. <feature name="mobShare">
  2. <param name="android_api_key" value="*******"/>
  3. <param name="android_api_secret" value="*******"/>
  4. <param name="ios_api_key" value="*******"/>
  5. <param name="ios_api_secret" value="*******"/>
  6. <param name="urlScheme" value="wxd0d84bbf23b4a0e4"/>
  7. <param name="urlScheme" value="tencent1105051647"/>
  8. <param name="urlScheme" value="QQ41DDBFFF"/>
  9. <param name="urlScheme" value="wb1132217156"/>
  10. <param name="urlScheme" value="fb*******"/>
  11. <param name="KAKAO_APP_KEY" value="48d3f524e4a636b08d81b3ceb50f1003"/>
  12. <!-- 如果使用Android QQ或QZone 还需要如下配置否则无法正确回调 其中tencent后面为appId-->
  13. <param name="android_urlScheme" value="tencent100371282"/>
  14. </feature>
  • 字段描述:

    apiKey:(必须配置)从 mob 平台选择社会化分享 shareSDK 创建应用后,申请的 app Key

    apiSecret:(必须配置)从 mob 平台选择社会化分享 shareSDK 创建应用后,申请的 app appSecret

    urlScheme:(必须配置)用于实现应用间跳转及数据交换,本应用可以启动第三方分享平台客户端,也可以从第三方分享平台客户端跳回本应用。urlScheme 的 value 值是从第三方分享平台获取。若同时支持多个平台,则要配置多个 urlScheme。以下是各个平台配置规范:

    • QQ:要填两个URL scheme: 一个是tencent + appId ; 一个是 QQ + appId 转换成的十六进制(如果appId转换的16进制数不够8位则在前面补0,如转换的是:5FB8B52,则最终填入为:QQ05FB8B52 注意:转换后的字母要大写),这里的 QQ 一定要是大写
    • 微信:是从微信开放平台获取的 appid,如:wxd0d84bbf23b4a0e4
    • 新浪微博:从新浪微博开放平台获取到的 App Key 拼接前缀 wb 而成的,如:wb1132217156
    • Facebook:设置格式为fb+AppID

      KAKAO_APP_KEY:(iOS可选配置)从kaKao平台申请的 app Key,若iOS平台需要使用kaKaoTalk、kaKaoStory平台进行分享,必须添加此字段

key.xml 配置详解:

key.xml 文件需要放在 widget://res 文件目录下,格式如下:

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <security>
  3. <item name="mobShare_sinaWb_apiKey" value="568898243"/>
  4. <item name="mobShare_sinaWb_apiSecret" value="38a4f8204cc784f81f9f0daaf31e02e3"/>
  5. <item name="mobShare_sinaWb_registUrl" value="http://www.apicloud.com"/>
  6. <item name="mobShare_weChat_apiKey" value=""/>
  7. <item name="mobShare_weChat_apiSecret" value=""/>
  8. <item name="mobShare_wxSession_apiKey" value="wx4868b35061f87885"/>
  9. <item name="mobShare_wxSession_apiSecret" value="64020361b8ec4c99936c0e3999a9f249"/>
  10. <item name="mobShare_mail_apiKey" value="show"/>
  11. <item name="mobShare_sms_apiKey" value="show"/>
  12. <item name="其它服务需加密的参数配置" value="***"/>
  13. .
  14. .
  15. .
  16. </security>
  • 字段描述:

    mobShare_sinaWb_apiKey:从新浪微博开放平台获取的 App Key

    mobShare_sinaWb_apiSecret:从新浪微博开放平台获取的 App secret

    mobShare_sinaWb_registUrl:在新浪微博开放平台创建应用时(应用信息 -> 高级信息 -> 授权设置)自定义填写的回调 url

    mobShare_weChat_apiKey:从微信开放平台获取的 App Key

    mobShare_weChat_apiSecret:从微信开放平台获取的 App secret

    mobShare_wxSession_apiKey:从微信开放平台获取的 App Key

    mobShare_wxSession_apiSecret:从微信开放平台获取的 App secret

    mobShare_mail_apiKey:固定值为:show,若添加此此字段则分享平台列表菜单显示该按钮

    mobShare_sms_apiKey:固定值为:show,若添加此此字段则分享平台列表菜单显示该按钮

    以上字段实际分为三类:apiKey、apiSecret 和 registUrl,分别代表你注册申请当前平台时获取的 App Key、App Secret 和 RedirectURL。由于涉及平台众多,各个平台不一定都同时需要这三类字段,请开发者根据平台具体需要进行增加(如邮件、短信不需要这三类字段,只需在 apiKey 类字段使用上述给出的固定值 show 即可)。 各个平台添加字段时只需替换上述name字段两个下划线之间的名称即可。以下是各个平台命名规范简写:

  1. alipay: 支付宝好友
  2. douBan: 豆瓣
  3. flickr: Flickr
  4. facebook: Facebook
  5. googlePlus: Google+
  6. instagram: Instagram
  7. kaiXin: 开心网
  8. kaKaoTalk: KaKao Talk
  9. kaKaoStory: KaKao Story
  10. line: Line
  11. linkedIn: LinkedIn
  12. mail: 邮件
  13. pinterest: Pinterest
  14. pocket: Pocket
  15. qq: QQ平台
  16. qZone: QQ空间
  17. renRen: 人人网
  18. sinaWb: 新浪微博
  19. sms: 短信
  20. tencentWb: 腾讯微博
  21. tumblr: Tumblr
  22. twitter: Twitter
  23. whatsApp: WhatsApp
  24. wxFav: 微信收藏
  25. wxSession: 微信好友
  26. wxTimeline: 微信朋友圈
  27. youDaoNote: 有道云笔记
  28. yinXiang: 印象笔记

在 iOS 平台上特别注意:

  1. 配置白名单:在iOS上需要配置 config.xml 文件,配置方法参考 配置可被检测的URL Scheme。 配置内容参考 mob 官网 中的:3、添加Scheme白名单。 注意用到哪个就配置哪个,无用的可以不配置。
  2. 配置ATS(App Transport Security):某些分享登录需要配置 plist 文件,使 APP 能够访问 http 协议。配置方法参考 iOS 修改 Info.plist 之配置 ATS 。配置内容参考 mob 官网 中的:1、大部分社交平台接口不支持https协议。

share

开始分享

share({params}, callback(ret, err))

params

title:

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

titleUrl:

  • 类型:字符串
  • 描述:要分享的标题的url,在 Android 平台上,如果是分享到 qq 或 qq空间,该参数不能缺省。iOS 忽略本参数

text:

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

imgPaths:

  • 类型:数组 ( android 不支持widget路径 )
  • 描述:(可选项)要分享的图片地址集合,传入参数可以为单张图片信息,也可以为多张图片信息,要求本地路径 (widget://、fs://、http://),,) 除腾讯微博外,其他平台只支持单张图片的分享,默认分享数组的第一张图片。新浪微博分享网络图片需要申请高级权限。单张图片太大会分享不成功。建议小于1M。

url:

  • 类型:字符串
  • 描述:(可选项)要分享网页路径/应用路径

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true //布尔类型;操作成功状态值 true|false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;分享错误码,取值范围及其信息如下:
  3. //0: (分享失败)
  4. //1: (用户已取消)
  5. }

示例代码

  1. var mobShare = api.require('mobShare');
  2. mobShare.share({
  3. title: '北京新鲜事',
  4. titleUrl: 'http://www.apicloud.com',
  5. text: '这里是测试的内容',
  6. imgPaths: ['widget://res/slide1.jpg', 'widget://res/slide2.jpg'],
  7. url: 'http://www.apicloud.com',
  8. }, function(ret, err) {
  9. if (ret.status) {
  10. api.alert({ msg: JSON.stringify(ret) });
  11. }
  12. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

shareTo

分享到指定平台

shareTo({params}, callback(ret, err))

params

target:

  • 类型:字符串
  • 描述:(可选项)要分享到平台的名字,取值范围如下:
    • alipay: 支付宝好友
    • douBan: 豆瓣
    • flickr: Flickr
    • facebook: Facebook
    • googlePlus: Google+
    • instagram: Instagram
    • kaiXin: 开兴网
    • kaKaoTalk: KaKao Talk
    • kaKaoStory: KaKao Story
    • line: Line
    • linkedIn: LinkedIn
    • mail: 邮件
    • pinterest: Pinterest
    • pocket: Pocket
    • qq: QQ平台
    • qZone: QQ空间
    • renRen: 人人网
    • sinaWb: 新浪微博
    • sms: 短信
    • tencentWb: 腾讯微博
    • tumblr: Tumblr
    • twitter: Twitter
    • whatsApp: WhatsApp
    • wxFav: 微信收藏
    • wxSession: 微信好友
    • wxTimeline: 微信朋友圈
    • youDaoNote: 有道云笔记
    • yinXiang: 印象笔记

title:

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

titleUrl:

  • 类型:字符串
  • 描述:要分享的标题的url,在 Android 平台上,如果是分享到 qq 或 qq空间,该参数不能缺省。iOS 忽略本参数

text:

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

imgPaths:

url:

  • 类型:字符串
  • 描述:(可选项)要分享网页路径/应用路径

type:

  • 类型:字符串
  • 描述:(可选项)分享类型,仅当 target 为 sinaWb 时有效,暂仅支持 iOS平台
  • 默认:text
  • 取值范围:
    • text:文本
    • image:图片
    • webPage:网页

latitude:

  • 类型:数字
  • 描述:(可选项)纬度,仅当 target 为 sinaWb 时有效,暂仅支持 iOS平台
  • 默认:39.916263

longitude:

  • 类型:数字
  • 描述:(可选项)经度,仅当 target 为 sinaWb 时有效,暂仅支持 iOS平台
  • 默认:116.405419

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true //布尔类型;操作成功状态值 true|false
  3. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;分享错误码,取值范围及其信息如下:
  3. //0: (分享失败)
  4. //1: (用户已取消)
  5. }

示例代码

  1. var mobShare = api.require('mobShare');
  2. mobShare.shareTo({
  3. target: 'qq',
  4. title: '北京新鲜事',
  5. titleUrl: 'http://www.apicloud.com',
  6. text: '这里是测试的内容',
  7. imgPaths: ['widget://res/slide1.jpg'],
  8. url: 'http://www.apicloud.com',
  9. }, function(ret, err) {
  10. if (ret.status) {
  11. api.alert({ msg: JSON.stringify(ret) });
  12. }
  13. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

login

第三方登录

注意在登录之前需要在config.xml 和 key.xml进行配置,配置流程与分享的配置一致,mobShare平台_apiKey 与 mobShare平台_apiSecret,如weChat平台配置如下

  1. <item name="mobShare_weChat_apiKey" value="wxedd229a2c54598a1"/>
  2. <item name="mobShare_weChat_apiSecret"value="73e1af25e1fbfedf1a937ef847f53027"/>

login({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:第三方登录平台的名字,取值范围如下:
    • alipay: 支付宝
    • douBan: 豆瓣
    • flickr: Flickr
    • facebook: Facebook
    • googlePlus: Google+
    • instagram: Instagram
    • kaKaoTalk: KaKao Talk
    • line: Line
    • linkedIn: LinkedIn
    • pinterest: Pinterest
    • pocket: Pocket
    • qq: QQ平台
    • sinaWb: 新浪微博
    • tumblr: Tumblr
    • twitter: Twitter
    • whatsApp: WhatsApp
    • weChat: 微信
    • youDaoNote: 有道云笔记
    • yinXiang: 印象笔记

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:true, //布尔类型;操作成功状态值 true|false
  3. uid: '', //字符类型;用户唯一标识
  4. icon: '', //字符类型;用户头像地址
  5. nickname: '', //字符类型;用户昵称
  6. token: '' //字符类型;授权token
  7. }

err:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. code: //数字类型;错误码
  3. msg: //字符类型;错误信息
  4. }

示例代码

  1. var mobShare = api.require('mobShare');
  2. mobShare.login({
  3. name: 'qq'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg: JSON.stringify(ret) });
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本