mobSharePlus

share login

论坛示例

为帮助用户更好更快的使用模块,论坛维护了一个,示例中包含示例代码、知识点讲解、注意事项等,供您参考。

概述

mobSharePlus封装了 mob 开发者服务平台的 shareSDK,是 mobShare 模块的升级版。

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

不能同时使用的模块:wx,wxPay等

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

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

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

1.配置自定义 文件

在 iOS 平台上(android平台忽略此步骤)需要把从 mob 申请到的 appKey 和 secret 配置到 Info.plist 文件内。配置方法参考 。 配置示例:

2.配置 config.xml 文件

使用此模块之前需先配置 config.xml配置完毕,需通过云端编译生效。

配置详解:

  • 名称:mobSharePlus
  • 参数:urlScheme、apiKey、apiSecret
  • 配置示例:
  1. <feature name="mobSharePlus">
  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
    • dingTalk:钉钉申请的appid

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

3.配置 key.xml 文件

需要将第三方平台(微博、QQ、twitter、facebook等)申请的key secret等参数配置到 key.xml 文件中,key.xml 文件里配置了哪些平台,则 share 接口弹出的分享菜单列表里就显示哪些平台。

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

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <security>
  3. <item name="mobSharePlus_sinaWb_apiKey" value="568898243"/>
  4. <item name="mobSharePlus_sinaWb_apiSecret" value="38a4f8204cc784f81f9f0daaf31e02e3"/>
  5. <item name="mobSharePlus_sinaWb_registUrl" value="http://www.apicloud.com"/>
  6. <item name="mobSharePlus_weChat_apiKey" value=""/>
  7. <item name="mobSharePlus_weChat_apiSecret"value=""/>
  8. <item name="mobSharePlus_wxSession_apiKey" value="wx4868b35061f87885"/>
  9. <item name="mobSharePlus_wxSession_apiSecret" value="64020361b8ec4c99936c0e3999a9f249"/>
  10. <item name="mobSharePlus_mail_apiKey" value="show"/>
  11. <item name="mobSharePlus_sms_apiKey" value="show"/>
  12. <item name="其它服务需加密的参数配置" value="***"/>
  13. .
  14. .
  15. .
  16. </security>
  • 字段描述:

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

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

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

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

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

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

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

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

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

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

  1. douBan: 豆瓣
  2. flickr: Flickr
  3. facebook: Facebook
  4. googlePlus: Google+
  5. instagram: Instagram
  6. kaiXin: 开心网
  7. kaKaoTalk: KaKao Talk
  8. kaKaoStory: KaKao Story
  9. line: Line
  10. linkedIn: LinkedIn
  11. mail: 邮件
  12. pocket: Pocket
  13. qq: QQ平台
  14. qZone: QQ空间
  15. renRen: 人人网
  16. sinaWb: 新浪微博
  17. sms: 短信
  18. tencentWb: 腾讯微博
  19. tumblr: Tumblr
  20. twitter: Twitter
  21. whatsApp: WhatsApp
  22. wxFav: 微信收藏
  23. wxSession: 微信好友
  24. wxTimeline: 微信朋友圈
  25. youDaoNote: 有道云笔记
  26. yinXiang: 印象笔记
  27. dingTalk: 钉钉
  1. 配置白名单:在iOS上需要配置 config.xml 文件,配置方法参考 配置可被检测的URL Scheme。 配置内容参考 中的:3、添加Scheme白名单。 注意用到哪个就配置哪个,无用的可以不配置。
  2. 配置ATS(App Transport Security):某些分享登录需要配置 plist 文件,使 APP 能够访问 http 协议。配置方法参考 iOS 修改 Info.plist 之配置 ATS 。配置内容参考 中的: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 对象
  • 内部字段:

err:

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

示例代码

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

可提供的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: 微信收藏
    • wxTimeline: 微信朋友圈
    • youDaoNote: 有道云笔记
    • yinXiang: 印象笔记
    • dingTalk: 钉钉

title:

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

titleUrl:

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

text:

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

imgPaths:

  • 类型:数组 ( android 不支持widget路径 )
  • 描述:(可选项)要分享的图片地址集合,传入参数可以为单张图片信息,也可以为多张图片信息,要求本地路径(widget://、fs://、

url:

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

callback(ret, err)

ret:

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

err:

  • 类型:JSON 对象
  • 内部字段:

示例代码

  1. var mobSharePlus = api.require('mobSharePlus');
  2. mobSharePlus.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进行配置,配置流程与分享的配置一致,mobSharePlus平台_apiKey 与 mobSharePlus平台_apiSecret,如weChat平台配置如下

  1. <item name="mobSharePlus_weChat_apiKey" value="wxedd229a2c54598a1"/>
  2. <item name="mobSharePlus_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. var mobSharePlus = api.require('mobSharePlus');
  2. mobSharePlus.login({
  3. name: 'qq'
  4. }, function(ret, err) {
  5. if (ret.status) {
  6. api.alert({ msg: JSON.stringify(ret) });
  7. }

iOS系统,Android系统

可提供的1.0.0及更高版本