前言

ShareSDKPlus封装了ShareSDK,是对APICloud平台的支持,为APICloud开发的App提供社交分享功能的一个组件,支持包括QQ、微信、新浪微博等多家主流社交平台,帮助开发者轻松实现社会化分享、第三方登录、关注、获得用户资料、获取好友列表等主流的功能。 当前ShareSDK版本,iOS:v4.2.5、Android:v3.5.2

集成准备

注册Mob应用
开发者使用本模块之前需要先到 Mob官网申请开发者账号,并在账号内填写相应信息创建自己的 APP,从而获取AppKey和AppSecret。 详情参考: 获取AppKey和AppSecret

创建APICloud应用
APICloud提供了两种创建应用的方式,方便开发者在云端或APICloud Studio中创建应用。

云端创建应用
注册并登录APICloud系统:https://www.apicloud.com/console 点击左上⻆“创建应用”, 如图:选择“Native”,填写“名称”及“说明”,应用创建完成。

APICloud Studio中创建应用:
下载并安装开发工具:APICloud Studio 2 登录APICloud Studio,没有账号点击“注册账号”,已经注册,用之前注册的APICloud账号登录APICloud Studio

这两端可以相互同步信息:

同步本地应用到云端资源库,开发者在APICloud Studio创建的应用会和云端资源库建立连接。项目代码改动后,可以使用APICloud Studio的代码提交功能提交代码到云端资源库。

打开APICloud云端,加入我们的ShareSDK模块和comlib模块

模块配置
使用此模块之前建议先配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:

iOS配置
配置config.xml文件
下面是配置各个平台URL Scheme例子,开发者自行删减。下面的值都是ShareSDK Demo测试使用,开发者可自行根据自己的AppKey修改配置

<feature name="shareSDKPlus"><param name="urlScheme" value="wx617c77c82218ea2c" /><param name="urlScheme" value="wb568898243" /><param name="urlScheme" value="tencent100371282" /><param name="urlScheme" value="QQ05FB8B52" /><param name="urlScheme" value="ap2017062107540437" /><param name="urlScheme" value="fb1412473428822331" /><param name="urlScheme" value="line3rdp.com.mob.product.ShareSDK" /><param name="urlScheme" value="yx0d9a9f9088ea44d78680f3274da1765f" /><param name="urlScheme" value="pdk4987008320438021391" /><param name="urlScheme" value="kakao9c17eb03317e0e627ec95a400f5785fb" /><param name="urlScheme" value="dingoabcwtuab76wy0kyzo" /><param name="urlScheme" value="pocketapp1234" /><param name="urlScheme" value="vk5312801" /><param name="urlScheme" value="twitterkit-viOnkeLpHBKs6KXV7MPpeGyzE" /><param name="urlScheme" value="rm226427com.mob.product.ShareSDK" /><param name="urlScheme" value="ak1412473428822331" /><param name="urlScheme" value="aw9ivykfjvi4hpwo" /></feature>

字段描述:

URL Scheme:用于实现应用间跳转及数据交换,跳转到第三方应用客户端进行分享或授权后,从第三方应用客户端平台跳回到当前应用。URL Scheme的value值根据第三方平台规则设置。可以配置多个URL Scheme。

各个平台配置规范:
**微信:**微信开放平台获取的AppId,URL Scheme为wx+AppId 如: wx617c77c82218ea2c

**QQ:**需要配置两个URL Scheme,一个是tencent + AppId; 一个是 QQ + AppId转换成的十六进制(如果AppId转换的16进制数不够8位则在前面补0,如转换的是:5FB8B52,则最终填入为QQ05FB8B52 注意:转换后的字母要大写),这里的字母一定要是大写

新浪微博:新浪微博开放平台获取到的appkey,URL Scheme为wb+Appkey 如:wb568898243

**Facebook:**URL Scheme为fb+AppId如:fb1412473428822331

配置 key.xml 文件
需要将第三方平台(微博、QQ、微信、Twitter、Facebook等)申请的AppKey、AppSecret、redirecturi等参数配置到 key.xml 文件中。

key.xml 配置详解

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

<?xml version="1.0" encoding="UTF-8" ?>
<security><item name="shareSDKPlus_SinaWei_AppKey" value="568898243" /><item name="shareSDKPlus_SinaWei_AppSecret" value="38a4f8204cc784f81f9f0daaf31e02e3" /><item name="shareSDKPlus_SinaWei_RedirectUri" value="http://www.sharesdk.cn" /><item name="shareSDKPlus_QQ_AppKey" value="100371282" /><item name="shareSDKPlus_QQ_AppSecret" value="aed9b0303e3ed1e27bae87c33761161d" /><item name="shareSDKPlus_Wechat_AppKey" value="wx617c77c82218ea2c" /><item name="shareSDKPlus_Wechat_AppSecret" value="c7253e5289986cf4c4c74d1ccc185fb1" /><item name="shareSDKPlus_Wechat_AppUniversalLink" value="https://ybpre.share2dlink.com/" /><item name="shareSDKPlus_Douyin_AppKey" value="aw9ivykfjvi4hpwo" /><item name="shareSDKPlus_Douyin_AppSecret" value="42b4caa6bda60bd49f05f06d0a4956e1" /><item name="shareSDKPlus_Facebook_AppKey" value="1412473428822331" /><item name="shareSDKPlus_Facebook_AppSecret" value="a42f4f3f867dc947b9ed6020c2e93558" /><item name="shareSDKPlus_Facebook_DisplayName" value="shareSDK" /><item name="shareSDKPlus_Twitter_AppKey" value="viOnkeLpHBKs6KXV7MPpeGyzE" /><item name="shareSDKPlus_Twitter_AppSecret" value="NJEglQUy2rqZ9Io9FcAU9p17omFqbORknUpRrCDOK46aAbIiey" /><item name="shareSDKPlus_Twitter_RedirectUri" value="http://mob.com" /><item name="shareSDKPlus_Instagram_AppKey" value="ff68e3216b4f4f989121aa1c2962d058" /><item name="shareSDKPlus_Instagram_AppSecret" value="1b2e82f110264869b3505c3fe34e31a1" /><item name="shareSDKPlus_Instagram_RedirectUri" value="http://sharesdk.cn" /><item name="shareSDKPlus_Google_AppKey" value="232554794995.apps.googleusercontent.com" /><item name="shareSDKPlus_Google_AppSecret" value="PEdFgtrMw97aCvf0joQj7EMk" /><item name="shareSDKPlus_Google_RedirectUri" value="http://localhost" /><item name="shareSDKPlus_Line_AuthType" value="2" /><item name="shareSDKPlus_AliPaySocial_AppKey" value="2017062107540437" /><item name="shareSDKPlus_MeiPai_AppKey" value="1089867639" /><item name="shareSDKPlus_DingTalk_AppKey" value="dingoabcwtuab76wy0kyzo" /><item name="shareSDKPlus_DouBan_AppKey" value="02e2cbe5ca06de5908a863b15e149b0b" /><item name="shareSDKPlus_DouBan_AppSecret" value="9f1e7b4f71304f2f" /><item name="shareSDKPlus_DouBan_RedirectUri" value="http://www.sharesdk.cn" /><item name="shareSDKPlus_TencentWeibo_AppKey" value="801307650" /><item name="shareSDKPlus_TencentWeibo_AppSecret" value="ae36f4ee3946e1cbb98d6965b0b2ff5c" /><item name="shareSDKPlus_TencentWeibo_RedirectUri" value="http://www.sharesdk.cn" /><item name="shareSDKPlus_YinXiang_AppKey" value="46131514-6903" /><item name="shareSDKPlus_YinXiang_AppSecret" value="08d7a6f3afcc888a" /><item name="shareSDKPlus_YinXiang_Sandbox" value="1" /><item name="shareSDKPlus_YouDaoNote_AppKey" value="dcde25dca105bcc36884ed4534dab940" /><item name="shareSDKPlus_YouDaoNote_AppSecret" value="d98217b4020e7f1874263795f44838fe" /><item name="shareSDKPlus_YouDaoNote_RedirectUri" value="http://www.sharesdk.cn/" /><item name="shareSDKPlus_Mingdao_AppKey" value="97230F25CA5C" /><item name="shareSDKPlus_Mingdao_AppSecret" value="A5DC29AF7C5A5851F28E903AE9EAC0" /><item name="shareSDKPlus_Mingdao_RedirectUri" value="http://mob.com" /><item name="shareSDKPlus_Kaixin_AppKey" value="358443394194887cee81ff5890870c7c" /><item name="shareSDKPlus_Kaixin_AppSecret" value="da32179d859c016169f66d90b6db2a23" /><item name="shareSDKPlus_Kaixin_RedirectUri" value="http://www.sharesdk.cn/" /><item name="shareSDKPlus_Renren_AppId" value="226427" /><item name="shareSDKPlus_Renren_AppKey" value="fc5b8aed373c4c27a05b712acba0f8c3" /><item name="shareSDKPlus_Renren_AppSecret" value="f29df781abdd4f49beca5a2194676ca4" /><item name="shareSDKPlus_Renren_AuthType" value="2" /><item name="shareSDKPlus_YiXin_AppKey" value="yx0d9a9f9088ea44d78680f3274da1765f" /><item name="shareSDKPlus_YiXin_AppSecret" value="1a5bd421ae089c3" /><item name="shareSDKPlus_YiXin_RedirectUri" value="https://open.yixin.im/resource/oauth2_callback.html" /><item name="shareSDKPlus_Kakao_AppKey" value="9c17eb03317e0e627ec95a400f5785fb" /><item name="shareSDKPlus_Kakao_ApiKey" value="802e551a5048c3172fc1dedaaf40fcf1" /><item name="shareSDKPlus_Kakao_RedirectUri" value="http://www.mob.com/oauth" /><item name="shareSDKPlus_YouTube_AppKey" value="906418427202-jinnbqal1niq4s8isbg2ofsqc5ddkcgr.apps.googleusercontent.com" /><item name="shareSDKPlus_YouTube_AppSecret" value="" /><item name="shareSDKPlus_YouTube_RedirectUri" value="http://localhost" /><item name="shareSDKPlus_Flickr_AppKey" value="cbed81d4a1bc7417693ab7865e354717" /><item name="shareSDKPlus_Flickr_AppSecret" value="4c490343869091f2" /><item name="shareSDKPlus_Dropbox_AppKey" value="us514wslpfojbxc" /><item name="shareSDKPlus_Dropbox_AppSecret" value="w0nmp4os3ngo1ja" /><item name="shareSDKPlus_Dropbox_RedirectUri" value="http://localhost" /><item name="shareSDKPlus_Evernote_AppKey" value="46131514-6903" /><item name="shareSDKPlus_Evernote_AppSecret" value="08d7a6f3afcc888a" /><item name="shareSDKPlus_Evernote_Sandbox" value="1" /><item name="shareSDKPlus_Pinterest_AppKey" value="4987008320438021391" /><item name="shareSDKPlus_Pocket_AppKey" value="11496-de7c8c5eb25b2c9fcdc2b627" /><item name="shareSDKPlus_Pocket_RedirectUri" value="pocketapp1234" /><item name="shareSDKPlus_LinkedIn_AppKey" value="46kic3zr7s4n" /><item name="shareSDKPlus_LinkedIn_AppSecret" value="RWw6WRl9YJOcdWsj" /><item name="shareSDKPlus_LinkedIn_RedirectUri" value="http://baidu.com" /><item name="shareSDKPlus_VKontakte_AppKey" value="5312801" /><item name="shareSDKPlus_VKontakte_AppSecret" value="ZHG2wGymmNUCRLG2r6CY" /><item name="shareSDKPlus_VKontakte_AuthType" value="2" /><item name="shareSDKPlus_Instapaper_AppKey" value="4rDJORmcOcSAZL1YpqGHRI605xUvrLbOhkJ07yO0wWrYrc61FA" /><item name="shareSDKPlus_Instapaper_AppSecret" value="GNr1GespOQbrm8nvd7rlUsyRQsIo3boIbMguAl9gfpdL0aKZWe" /><item name="shareSDKPlus_Tumblr_AppKey" value="2QUXqO9fcgGdtGG1FcvML6ZunIQzAEL8xY6hIaxdJnDti2DYwM" /><item name="shareSDKPlus_Tumblr_AppSecret" value="3Rt0sPFj7u2g39mEVB3IBpOzKnM3JnTtxX2bao2JKk4VV1gtNo" /><item name="shareSDKPlus_Tumblr_RedirectUri" value="http://sharesdk.cn" /><item name="shareSDKPlus_SMS_CountryList" value="0" /><item name="shareSDKPlus_CMCC_AppId" value="300011862498" /><item name="shareSDKPlus_CMCC_AppKey" value="38D9CA1CC280C5F207E2C343745D4A4B" /><item name="shareSDKPlus_CMCC_DisplayUI" value="1" /><item name="shareSDKPlus_Telegram_BotToken" value="646009290:AAGSonNPZqyjl0MUER8MdM8pwSPritFVNgI" /><item name="shareSDKPlus_Telegram_BotDomain" value="http://www.mob.com" /><item name="shareSDKPlus_Reddit_AppKey" value="ObzXn50T7Cg0Xw" /><item name="shareSDKPlus_Reddit_RedirectUri" value="https://www.mob.com/reddit_callback" /><item name="shareSDKPlus_ESurfing_AppKey" value="8148612606" /><item name="shareSDKPlus_ESurfing_AppSecret" value="mCltrhUqwshFa86egDTs0491ibaAulKA" /><item name="shareSDKPlus_ESurfing_AppName" value="shareSDK" />
</security>

以上可能出现的全部各个平台的配置,根据开发者需要删减,另外部分特殊平台需要在info.plist文件中配置

字段描述:

shareSDKPlus_SinaWei_AppKey: 从新浪微博开放平台获取的AppKey.

shareSDKPlus_SinaWei_AppSecret: 从新浪微博开放平台获取的AppSecret.

shareSDKPlus_SinaWei_RedirectUri: 从新浪微博开放平台创建应用时自定义填写的回调地址url

其他平台也都是各自到开放平台注册应用获取

配置info.plist文件
该文件含MOB平台MOBAppKey和MOBAppSecret、特殊平台AppKey配置、白名单配置,将info.plist放在widget://res文件目录下,文件内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict><key>MOBAppKey</key><string>moba6b6c6d6</string><key>MOBAppSecret</key><string>b89d2427a3bc7ad1aea1e1e8c1d36bf3</string><key>AccountKitClientToken</key><string>c30c08723aa8c48fbd5e01d1c3103891</string><key>FacebookAppID</key><string>1412473428822331</string><key>KAKAO_APP_KEY</key><string>9c17eb03317e0e627ec95a400f5785fb</string><key>LineSDKConfig</key><dict><key>ChannelID</key><string>1521201864</string></dict><key>LSApplicationQueriesSchemes</key><array><string>kakaotalk-5.9.7</string><string>pinterestsdk.v1</string><string>vkauthorize</string><string>storylink</string><string>kakaolink</string><string>storykompassauth</string><string>kakaokompassauth</string><string>yixinfav</string><string>yixinoauth</string><string>yixinopenapi</string><string>yixin</string><string>pocket-oauth-v1</string><string>dingtalk-open</string><string>dingtalk</string><string>alipayshare</string><string>alipay</string><string>whatsapp</string><string>tim</string><string>timapi</string><string>timopensdkfriend</string><string>timwpa</string><string>timgamebindinggroup</string><string>timapiwallet</string><string>timOpensdkSSoLogin</string><string>wtlogintim</string><string>timopensdkgrouptribeshare</string><string>timopensdkapiV4</string><string>timgamebindinggroup</string><string>timopensdkdataline</string><string>wtlogintimV1</string><string>timapiV1</string><string>yixinoauth</string><string>yixin</string><string>sinaweibohd</string><string>sinaweibo</string><string>weibosdk2.5</string><string>weibosdk</string><string>weibo</string><string>sinaweibosso</string><string>weixin</string><string>youtube</string><string>mpsharesdk11</string><string>mpsharesdk10</string><string>mtmv</string><string>mqqopensdkapiV4</string><string>mqzone</string><string>mqqwpa</string><string>wtloginmqq2</string><string>mqzoneopensdkapiV2</string><string>mqzoneopensdkapi19</string><string>mqzoneopensdkapi</string><string>mqzoneopensdk</string><string>mqqopensdkapiV3</string><string>mqqopensdkapiV2</string><string>mqq</string><string>mqqOpensdkSSoLogin</string><string>mqqapi</string><string>lineauth</string><string>line</string><string>instagram</string><string>fbauth</string><string>fb-messenger-platform-20150714</string><string>fb-messenger</string><string>fbauth2</string><string>fbapi</string><string>fbapi20130214</string><string>twitterauth</string><string>tg</string><string>telegram</string><string>renrenapi</string><string>renrenios</string><string>renreniphone</string><string>douyinsharesdk</string><string>douyinopensdk</string></array><key>NSPhotoLibraryAddUsageDescription</key><string>写入相册视频</string><key>NSPhotoLibraryUsageDescription</key><string>从手机相册中选择</string><key>NSAppTransportSecurity</key><dict><key>NSAllowsArbitraryLoads</key><true/></dict></dict>

MOBAppKey、MOBAppSecret:(必须配置)从MOB平台创建应用后,申请的AppKey和AppSecret.

KAKAO_APP_KEY: 从kaKao平台申请的 AppKey,若iOS平台需要使用kaKaoTalk、kaKaoStory平台进行分享,必须添加此字段

LineSDKConfig: line平台配置

LSApplicationQueriesSchemes: 白名单配置,用于判断是否安装第三方客户端及跳转到第三方客户端, 注意用到哪个就配置哪个,无用的可以不配置

注意:

配置白名单,也可以在配置config.xml文件中,配置方法参考配置可被检测的URL Scheme。配置内容参考 快速集成 配置ATS(App Transport Security),在info.plist文件中,APP可以使用http协议访问。配置方法参考iOS修改Info.plist之配置ATS.

配置UZApp.entitlements文件
将UZApp.entitlements放在widget://res文件目录下,并配置universal Link,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict><key>com.apple.developer.applesignin</key><array><string>Default</string></array><key>com.apple.developer.associated-domains</key><array><string>applinks:ybpre.share2dlink.com</string></array>
</dict>
</plist>

Android配置
注意:ShareSDK的ApiCloud插件1.3.1及之后的版本,做了分包处理,集成方式如下: (老版本集成文档)

平台配置
Android配置第三方平台的AppKey和Mob-AppKey/Mob-AppSecret等信息遵循APICloud的惯例是在config.xml中配置。 在name为”ShareSDKPlus”的标签内,配置标签来填充AppKey等属性的值。 下面是配置各个平台AppKey/AppSecret/RedirectUrl的例子,实际的使用中需要开发者填写自己在第三方网站申请的值(只需要改变值,不要改变AppKey/AppSecret/RedirectUrl的名称,否则将会读取不到)

<feature name="shareSDKPlus"><param name="Mob-AppKey" value="moba0b0c0d0" /><param name="Mob-AppSecret" value="5713f0d88511f9f4cf100cade0610a34" /><param name="WeChat-AppId" value="wx4868b35061f87885" /><param name="WeChat-AppSecret" value="64020361b8ec4c99936c0e3999a9f249" /><param name="WeChat-WithShareTicket" value="true" /><param name="WeChat-BypassApproval" value="false" /><param name="SinaWeibo-AppKey" value="568898243" /><param name="SinaWeibo-AppSecret" value="38a4f8204cc784f81f9f0daaf31e02e3" /><param name="SinaWeibo-ShareByAppClient" value="true" /><param name="SinaWeibo-RedirectUrl" value="http://www.sharesdk.cn" /><param name="QQ-AppId" value="100371282" /><param name="QQ-AppKey" value="aed9b0303e3ed1e27bae87c33761161d" /><param name="QQ-ShareByAppClient" value="true" /><param name="QQ-BypassApproval" value="false" /><param name="Google-ClientID" value="232554794995.apps.googleusercontent.com" /><param name="Google-RedirectUri" value="http://localhost" /><param name="Google-ShareByAppClient" value="true" /><param name="Facebook-ConsumerKey" value="1412473428822331" /><param name="Facebook-ConsumerSecret" value="a42f4f3f867dc947b9ed6020c2e93558" /><param name="Facebook-RedirectUrl" value="https://mob.com" /><param name="Facebook-ShareByAppClient" value="true" /><param name="Twitter-ConsumerKey" value="viOnkeLpHBKs6KXV7MPpeGyzE" /><param name="Twitter-ConsumerSecret" value="NJEglQUy2rqZ9Io9FcAU9p17omFqbORknUpRrCDOK46aAbIiey" /><param name="Twitter-CallbackUrl" value="http://mob.com" /><param name="Twitter-ShareByAppClient" value="true" /><param name="Twitter-BypassApproval" value="true" /><param name="Instagram-ClientId" value="ff68e3216b4f4f989121aa1c2962d058" /><param name="Instagram-ClientSecret" value="1b2e82f110264869b3505c3fe34e31a1" /><param name="Instagram-RedirectUri" value="http://sharesdk.cn" /><param name="Instagram-ShareByAppClient" value="true" /><param name="Alipay-AppId" value="2015072400185895" /><param name="Kakao-AppKey" value="48d3f524e4a636b08d81b3ceb50f1003" /><param name="Telegram-AppKey" value="782826033" /><param name="Telegram-RedirectUrl" value="http://www.mob.com" /><param name="Line-ChannelID" value="1639219273" /><param name="Line-ChannelSecret" value="58faad55ffce8bf8f63b59fe6fb702ae" /><param name="Line-RedirectUri" value="https://www.mob.com/" /><param name="Dingding-AppId" value="dingoanxyrpiscaovl4qlw" /><param name="Dingding-BypassApproval" value="false" /><param name="Dingding-RedirectUrl" value="http://localhost" /></feature>

Android端支持平台
注意:shareSDKPlus模块在ApiCloud的模块库中添加,shareSDKPlus需要使用的其他第三方平台在gitHub上下载

API接口

注意:

  • 使用QQ空间时,QQ模块也必须引入,即ShareSDKPlusQZone和ShareSDKPlusQQ模块都需要引入。
  • 使用QQ模块时,需要修改ShareSDKPlusQQ.zip内容。

步骤为:

  • 解压ShareSDKPlusQQ.zip
  • 修改解压出的ShareSDKPlusQQ/res文件夹下的AndroidManifest.xml文件中QQ−AppKey内容,把{QQ-AppKey}内容,把QQ−AppKey内容,把{QQ-AppKey}替换为自己应用的QQAPPkey

修改后的内容为:其中1234567则为自己QQ的appkey

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.mob.sharesdkplusqq"><application><activityandroid:name="cn.sharesdk.tencent.qq.ReceiveActivity"android:launchMode="singleTask"android:noHistory="true"><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><category android:name="android.intent.category.BROWSABLE" /><data android:scheme="tencent1234567" /></intent-filter></activity></application>
</manifest>
  • 修改完成,压缩ShareSDKPlusQQ文件夹,压缩方式选择标准。

模块接口

首先添加一个ShareSDK.js,放在widget://script文件目录下,内容如下:

/*** 常量:分享类型,分享/授权平台,分享/授权结果状态*/
function ShareSDK()
{/*** JSON字符串转换为对象* @param string        JSON字符串* @returns {Object}    转换后对象*/JsonStringToObject = function (string){try{return eval("(" + string + ")");}catch (err){return null;}};this.JsonStringToObject = function (string){return JsonStringToObject(string);}/*** 对象转JSON字符串* @param obj           对象* @returns {string}    JSON字符串*/ObjectToJsonString = function (obj){var S = [];var J = null;var type = Object.prototype.toString.apply(obj);if (type === '[object Array]'){for (var i = 0; i < obj.length; i++){S.push(ObjectToJsonString(obj[i]));}J = '[' + S.join(',') + ']';}else if (type === '[object Date]'){J = "new Date(" + obj.getTime() + ")";}else if (type === '[object RegExp]'|| type === '[object Function]'){J = obj.toString();}else if (type === '[object Object]'){for (var key in obj){var value = ObjectToJsonString(obj[key]);if (value != null){S.push('"' + key + '":' + value);}}J = '{' + S.join(',') + '}';}else if (type === '[object String]'){J = '"' + obj.replace(/\\/g, '\\\\').replace(/"/g, '\\"').replace(/\n/g, '') + '"';}else if (type === '[object Number]'){J = obj;}else if (type === '[object Boolean]'){J = obj;}return J;};this.ObjectToJsonString = function (obj){return ObjectToJsonString(obj);}/*** 平台类型* @type {object}*/this.PlatformID = {Unknown : 0,SinaWeibo : 1,            //Sina Weibo   TencentWeibo : 2,        //Tencent Weibo  DouBan : 5,                //Dou Ban   QZone : 6,                 //QZone   Renren : 7,                //Ren Ren   Kaixin : 8,                //Kai Xin  Pengyou : 9,            //Friends  Facebook : 10,            //Facebook   Twitter : 11,            //Twitter   Evernote : 12,            //Evernote  Foursquare : 13,        //Foursquare  GooglePlus : 14,        //Google+   Instagram : 15,            //Instagram  LinkedIn : 16,            //LinkedIn   Tumblr : 17,            //Tumblr   Mail : 18,                 //Mail  SMS : 19,                //SMS   Print : 20,             //Print   Copy : 21,                //Copy   WeChat : 22,            //WeChat Friends  WeChatMoments : 23,        //WeChat Timeline   QQ : 24,                //QQ  Instapaper : 25,        //Instapaper   Pocket : 26,            //Pocket   YouDaoNote : 27,         //You Dao NotePinterest : 30,         //Pinterest  Flickr : 34,            //Flickr  Dropbox : 35,            //Dropbox  VKontakte : 36,            //VKontakte   WeChatFavorites : 37,    //WeChat Favorited  YiXinSession : 38,         //YiXin Session   YiXinTimeline : 39,        //YiXin Timeline   YiXinFav : 40,            //YiXin Favorited  MingDao : 41,              //明道Line : 42,                 //LineWhatsApp : 43,             //Whats AppKakaoTalk : 44,         //KakaoTalkKakaoStory : 45,        //KakaoStory FacebookMessenger : 46, //FacebookMessengerBluetooth : 48,         //BluetoothAlipay : 50,            //AlipayAliPaySocialTimeline:51,//AliPaySocial TimelineDingTalk:52,            //DingTalkYouTube:53,             //youtubeMeiPai:54,              //美拍Cmcc : 55,              //中国移动Reddit : 56,            //RedditESurfing : 57,          //天翼Douyin : 58,            //抖音FacebookAccount : 58,   //FacebookAccountKakaoPlatform : 995,    //Kakao SeriesEvernotePlatform : 996, //Evernote SeriesWechatPlatform : 997,   //Wechat SeriesQQPlatform : 998,        //QQ SeriesAny : 999                 //Any Platform  };/*** 回复状态* @type {object}*/this.ResponseState = {Begin : 0,              //开始Success: 1,             //成功Fail : 2,               //失败Cancel : 3             //取消};/*** 内容分享类型* @type {object}*/this.ContentType = {Auto : 0,Text : 1,Image : 2,WebPage : 4,Music : 5,Video : 6,App : 7,File : 8,Emoji : 9};};var $sharesdk = new ShareSDK();

添加ShareSDK.js目的主要是提供平台号,回调状态等一些常量

引入模块

var shareApi = api.require('shareSDKPlus');

authorize(授权)

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

params

platform: 类型:数字 描述:授权平台号,是新浪微博授权还是微信授权或者其他平台授权,由此参数决定

callback(ret, err)

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

{state: 1      //数字类型,1:成功 2:失败 3:取消data:{}        //json对象 授权后获取的用户信息error:{      // state = 2时error_code:,     //错误码error_msg:   //错误信息}
}

示例代码

var shareApi = api.require('ShareSDKPlus');
shareApi.authorize({"platform": $sharesdk.PlatformID.SinaWeibo
},function(ret, err){var state = ret.state;switch(state){case $sharesdk.ResponseState.Success://1api.toast({msg: "授权成功",location: 'middle'});break;case $sharesdk.ResponseState.Fail://2api.toast({msg: "授权失败",location: 'middle'});break;case $sharesdk.ResponseState.Cancel://3api.toast({msg: "取消授权",location: 'middle'});break;default:}
});

可用性 iOS系统,Android系统 可提供的1.0.0及更高版本

cancelAuthorize(取消授权)

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

params

platform: 类型:数字 描述:授权平台号

callback(ret, err)

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

{state: 1      //数字类型,1:成功 2:失败 3:取消error:{      // state = 2时error_code:,     //错误码error_msg:   //错误信息}
}

示例代码

var shareApi = api.require('ShareSDKPlus');
shareApi.cancelAuthorize({"platform": $sharesdk.PlatformID.SinaWeibo
},function(ret, err){var state = ret.state;switch(state){case $sharesdk.ResponseState.Success://1api.toast({msg: "成功",location: 'middle'});break;case $sharesdk.ResponseState.Fail://2api.toast({msg: "失败",location: 'middle'});break;case $sharesdk.ResponseState.Cancel://3api.toast({msg: "授权",location: 'middle'});break;default:}
});

可用性
iOS系统,Android系统 可提供的1.0.0及更高版本

getUserInfo(获取用户信息)

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

params

platform: 类型:数字 描述:平台号,是获取新浪微博还是微信或者其他平台用户信息,由此参数决定

callback(ret, err)

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

{state: 1      //数字类型,1:成功 2:失败 3:取消data:{}        //json对象 获取的用户信息error:{      // state = 2时error_code:,     //错误码error_msg:   //错误信息}
}

示例代码

var shareApi = api.require('ShareSDKPlus');
shareApi.getUserInfo({"platform": $sharesdk.PlatformID.SinaWeibo
},function(ret, err){var state = ret.state;switch(state){case $sharesdk.ResponseState.Success://1api.toast({msg: "成功",location: 'middle'});break;case $sharesdk.ResponseState.Fail://2api.toast({msg: "失败",location: 'middle'});break;case $sharesdk.ResponseState.Cancel://3api.toast({msg: "取消",location: 'middle'});break;default:}
});

shareContent(直接分享)

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

params

platform: 类型:数字 描述:平台号,分享到指定平台

shareParams

类型:json 描述:分享内容 text:文本 imageUrl:图片地址 title:标题

callback(ret, err)

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

{state: 1      //数字类型,1:成功 2:失败 3:取消data:{}        //error:{      // state = 2时error_code:,     //错误码error_msg:   //错误信息}
}

示例代码

var shareApi = api.require('ShareSDKPlus');var shareParams ={"text" : "测试的文字","imageUrl" : "https://download.sdk.mob.com/206/4f8/dfc9ea27dd8bc4abfec865c38d/800_450_156.2.jpg","title" : "测试的标题","titleUrl" : "http://www.mob.com","description" : "测试的描述","site" : "ShareSDK","siteUrl" : "http://www.mob.com",};shareApi.shareContent({"platform": $sharesdk.PlatformID.SinaWeibo,"shareParams": shareParams"shareType" : $sharesdk.ContentType.Auto
},function(ret, err){var state = ret.state;switch(state){case $sharesdk.ResponseState.Success://1api.toast({msg: "分享成功",location: 'middle'});break;case $sharesdk.ResponseState.Fail://2api.toast({msg: "分享失败",location: 'middle'});break;case $sharesdk.ResponseState.Cancel://3api.toast({msg: "取消分享",location: 'middle'});break;default:}
});

可用性

iOS系统,Android系统 可提供的1.0.0及更高版本

oneKeyShareContent(一键分享/菜单分享)

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

params

platforms:

platform: 类型:数组 描述:可分享的平台列表,为null为全平台

shareParams:

类型:json 描述:分享内容 text:文本 imageUrl:图片地址 title:标题

callback(ret, err)

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

{state: 1      //数字类型,1:成功 2:失败 3:取消data:{}        //error:{      // state = 2时error_code:,     //错误码error_msg:   //错误信息}
}

示例代码

var shareApi = api.require('ShareSDKPlus');var shareParams ={"text" : "测试的文字","imageUrl" : "https://download.sdk.mob.com/206/4f8/dfc9ea27dd8bc4abfec865c38d/800_450_156.2.jpg","title" : "测试的标题","titleUrl" : "http://www.mob.com","description" : "测试的描述","site" : "ShareSDK","siteUrl" : "http://www.mob.com",};var platforms =[$sharesdk.PlatformID.SinaWeibo,$sharesdk.PlatformID.WeChat];shareApi.oneKeyShareContent({"platforms": platforms, //为null时,显示全部可分享的平台(排除当前环境不可分享平台)"shareParams": shareParams
},function(ret, err){var state = ret.state;switch(state){case $sharesdk.ResponseState.Success://1api.toast({msg: "分享成功",location: 'middle'});break;case $sharesdk.ResponseState.Fail://2api.toast({msg: "分享失败",location: 'middle'});break;case $sharesdk.ResponseState.Cancel://3api.toast({msg: "取消分享",location: 'middle'});break;default:}
});

可用性 iOS系统,Android系统 可提供的1.0.0及更高版本

如何扩充平台
当前ShareSDKPlus只支持微信、QQ、新浪微博、钉钉、支付宝、facebook、twitter、Instagram、line、WhatsApp等十个平台,如果想要支持其他平台应如何操作

iOS方案
点击此处

Android方案
点击此处

APICloud例子demo
点击此处

ShareSDKPlus APICloud 模块相关推荐

  1. Android开发之ApiCloud模块开发步骤

    看图操作,简单明了: 好了apicloud模块开发完成,你可以打包arr文件压缩zip后上传到自定义模块然后别人用js就可以引用你开发的这个模块里面的内容了 打包arr文件压缩zip步骤如下图: 上传 ...

  2. Android开发之ApiCloud模块开发之模块引用第三方库的问题

    因为现在第三方库比较多,所以很多人为了快速开发导致库用烂大街了,但是在模块开发中本人不建议使用第三方库的依赖会有很多问题,要么是资源图片找不到,要么是布局找不到啥的,但是有的需求只有第三方库怎么办呢? ...

  3. Android开发之ApiCloud模块开发的注意事项

    经过本人多次模块制作打包上传基本总结模块开发的以下坑: 一.模块开发SDK最小版本必须为9,不然就算你SDK模块开发完毕正常运行你在后台云编译也无法通过会报错,提示 minSdkVersion9小于你 ...

  4. apicloud模块和html,APICloud教程

    APICloud教程 原创 xxxpjgl2019-06-09 18:45:15©著作权 ©著作权归作者所有:来自51CTO博客作者xxxpjgl的原创作品,如需转载,请注明出处,否则将追究法律责任 ...

  5. apicloud模块和html,APICloud模块开发打包

    去官网上下载SDK 自己创建类继承于UZModule类,需要配置KEY的话在config.xml中配置.在html文件中写方法调用包名.然后利用obj.的形式调用类中的方法名.这样就会走自定义类中的方 ...

  6. 使用APICloud MobTech平台 快速实现多平台分享功能

    做移动端开发的同学对分享功能应该很了解了,比如很多APP都有分享到微信.微博的功能,可以分享文本.图片.链接.音乐等.本文将为大家讲解如何使用APICloud & MobTech SDK 快速 ...

  7. Android开发之ApiCloud轮播图开发

    首先看下效果图: 效果还可以吧. 如何开发呢? 首先可以在apicloud模块库中里面搜索UIScrollPicture这个模块添加后即可开发,调用方法也很简单有相应的文档说明不过有的参数不是很容易理 ...

  8. Apicloud开发新闻类App实战项目-老孟编程

    Apicloud开发新闻类App实战项目-老孟编程 课程名称:Apicloud开发新闻类App实战项目 讲师:孟老师 课程介绍: 技术点包括: 1:vue实现apicloud开发脚手架--超级实用通用 ...

  9. DCloud与APICloud的对比选择

    这两家目前应该说是市场占有率较高的国内团队. DCloud官网上有一个比较:http://ask.dcloud.net.cn/article/237,抛开其中撕逼的部分,文章中基本观点我是非常认同的. ...

最新文章

  1. spring amqp rabbitmq fanout配置
  2. android 观察者的框架,Android 架构师7 设计模式之观察者模式
  3. Oracle 中 call 和 exec的区别
  4. 插图 引用 同一行两个插图_插图的目的
  5. php的验证码要gd库,PHP通过GD库实现验证码功能
  6. 关于linux低端内存
  7. 以固定速率发包工具linux,linux发包软件-指定卡合同如何在linux下封闭包
  8. linux中的命令ls -1,Linux常用命令 ls 入门基础知识
  9. 职工考勤表(vba工作日自动填充批量打印)---源码在最后
  10. goproxy代理软件 v10.3 轻量级高性能代理软件+链式代理+正向代理+反向代理
  11. mysql for mac 重置密码_Mac版,mysql重置密码
  12. GA002-186-11
  13. 树莓派4B之ubuntu系统配置UART
  14. ubuntu16.04安装nvidia(英伟达)显卡驱动
  15. html5 幽灵按钮,弥散阴影幽灵按钮
  16. 经典面试题:CSS定位知识及小盒子套大盒子的方法
  17. 为什么无法显示其他计算机,为什么网上邻居中看不到同一局域网的其他电脑?...
  18. c语言教程英文版讲义,c语言教程英文版讲义(四).pdf
  19. heidi xlsx导入mysql_heidisql导入excel表数据
  20. uni-app 搜索、历史记录功能简单实现

热门文章

  1. figure()用法
  2. Yahoo Pig简介
  3. 博弈论:完美信息的拓展性博弈-极小极大算法(Minimax)
  4. 百度相关关键词批量采集并生成标题源码
  5. 考博计算机博士研究计划,科研方法 | 写完了研究计划书?请不要功亏一篑!
  6. 信息学奥赛一本通 1015 计算并联电阻的阻值
  7. C语言数值积分报告,c语言定积分报告
  8. 两个对象合并成一个对象(js、jq、es6)
  9. 旧书交易系统——第二次报告(UML图)
  10. vmos pro搭建apk脱壳系统