mobShare

来自于:开发者立即使用

概述

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
  • 配置示例:
  <feature name="mobShare">
    <param name="android_api_key" value="*******"/>
    <param name="android_api_secret" value="*******"/>
    <param name="ios_api_key" value="*******"/>
    <param name="ios_api_secret" value="*******"/>
    <param name="urlScheme" value="wxd0d84bbf23b4a0e4"/>
    <param name="urlScheme" value="tencent1105051647"/>
    <param name="urlScheme" value="QQ41DDBFFF"/>
    <param name="urlScheme" value="wb1132217156"/>
    <param name="urlScheme" value="fb*******"/>
    <param name="KAKAO_APP_KEY" value="48d3f524e4a636b08d81b3ceb50f1003"/>
    <!-- 如果使用Android QQ或QZone 还需要如下配置否则无法正确回调 其中tencent后面为appId-->
    <param name="android_urlScheme" value="tencent100371282"/>
  </feature>
  • 字段描述:

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

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

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

    • QQ:要填两个URL scheme: 一个是tencent + appId ; 一个是 QQ + (appId 转换成的十六进制),注意这里的 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 文件目录下,格式如下:

    <?xml version="1.0" encoding="UTF-8" ?>
    <security>
    <item name="mobShare_sinaWb_apiKey" value="568898243"/>
    <item name="mobShare_sinaWb_apiSecret" value="38a4f8204cc784f81f9f0daaf31e02e3"/>
    <item name="mobShare_sinaWb_registUrl" value="http://www.apicloud.com"/>


    <item name="mobShare_weChat_apiKey" value=""/>
    <item name="mobShare_weChat_apiSecret"value=""/>

    <item name="mobShare_wxSession_apiKey" value="wx4868b35061f87885"/>
    <item name="mobShare_wxSession_apiSecret" value="64020361b8ec4c99936c0e3999a9f249"/>

    <item name="mobShare_mail_apiKey" value="show"/>
    <item name="mobShare_sms_apiKey" value="show"/>
    <item name="其它服务需加密的参数配置" value="***"/>
    .
    .
    .
    </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字段两个下划线之间的名称即可。以下是各个平台命名规范简写:

        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: 印象笔记

特别注意:

在iOS上需要配置 config.xml 文件,配置方法参考 配置可被检测的URL Scheme

配置内容参考 mob 官网 中的--------3、添加Scheme白名单。 注意用到哪个就配置哪个,无用的可以不配置。

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 对象
  • 内部字段:
{
    status:true   //布尔类型;操作成功状态值 true|false
}

err:

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

示例代码

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

可用性

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:

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

callback(ret, err)

ret:

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

err:

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

示例代码

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

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

login

第三方登录

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

    <item name="mobShare_weChat_apiKey" value="wxedd229a2c54598a1"/>
    <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 对象
  • 内部字段:
{
    status:true,   //布尔类型;操作成功状态值 true|false
    uid: '',       //字符类型;用户唯一标识
    icon: '',      //字符类型;用户头像地址
    nickname: '',  //字符类型;用户昵称
    token: ''      //字符类型;授权token
}

err:

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

示例代码

var mobShare = api.require('mobShare');
mobShare.login({
    name: 'qq'
}, function(ret, err) {
    if (ret.status) {
        api.alert({ msg: JSON.stringify(ret) });
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本