首先在ShareSDK官网下载SDK或者在android studio中配置build.gradle.

ShareSDK Maven集成文档

注:使用ShareSDK maven集成方式,不需要在AndroidMainfest.xml下面配置任何权限和Activity

注意:需要先申请Mob的appkey与appsecret请点击这里查看

一、配置gradle

1、打开项目根目录的build.gradle,在buildscrip–>dependencies 模块下面添加  classpath ‘com.mob.sdk:MobSDK:+’,如下所示;

1
2
3
4
5
6
7
8
9
10
11

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        ...
        classpath 'com.mob.sdk:MobSDK:+'
    }
}

2、在使用到Mob产品的module下面的build.gradle文件里面添加引用

1
apply plugin: ‘com.mob.sdk’

3、然后添加MobSDK方法,配置mob的key和秘钥 (与第三步是一个gradle中;注意:MobSDK方法是配置到文件根目录,与android并列,不要配置到android里面哦)

如果还没有key的,申请Mob的appkey与appsecret请点击这里查看
Onekeyshare是ShareSDK的GUI界面,如果不需要,则需要添加”gui false”,因为默认是使用gui,version字段为SDK的版本号,不设置则使用最新的版本;

1
2
3
4
5
6
7

MobSDK {
    appKey "d580ad56b4b5"
    appSecret "7fcae59a62342e7e2759e9e397c82bdd"
    ShareSDK {}
  
}

4、maven集成方式可以在Mob产品的module下面的build.gradle文件里面配置ShareSDK各个社交平台的key信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

MobSDK {
    appKey "d580ad56b4b5"
    appSecret "7fcae59a62342e7e2759e9e397c82bdd"
    ShareSDK {
        //平台配置信息
        devInfo {
            SinaWeibo {
                appKey "568898243"
                appSecret "38a4f8204cc784f81f9f0daaf31e02e3"
                callbackUri "http://www.sharesdk.cn"
                shareByAppClient false
            }
            Wechat {
                appId "wx4868b35061f87885"
                appSecret "64020361b8ec4c99936c0e3999a9f249"
            }
            QQ {
                appId "100371282"
                appKey "aed9b0303e3ed1e27bae87c33761161d"
            }
            Facebook {
                appKey "1412473428822331"
                appSecret "a42f4f3f867dc947b9ed6020c2e93558"
                callbackUri "https://mob.com"
            }
        }
    }
  
}

其中的devInfo为来自社交平台的应用信息。

注:如果您没有在AndroidManifest中设置appliaction的类名,MobSDK会将这个设置为com.mob.MobApplication,但如果您设置了,请在您自己的Application类中调用:

1
MobSDK.init(this);

并且在Manifest清单文件中配置:tools:replace=”android:name”,如下所示:

1
2
3

<application
   android:name = ".MyApplication"
   tools:replace="android:name">

二、配置字段说明

配置支持的平台全部属性字段有以下这些(注:区分大小写):

id 数字,平台的id,可以设置为任何不重复的数字,(可选字段)
sortId 数字,九宫格界面平台的排序,越小越靠前,可以设置为任何不重复的数字,(可选字段)
appId 文本,对应ShareSDK.xml中的AppId、ClientID、ApplicationId、ChannelID
appKey 文本,对应ShareSDK.xml中的AppKey、ConsumerKey、ApiKey、OAuthConsumerKey
appSecret 文本,对应ShareSDK.xml中的AppSecret、ConsumerSecret、SecretKey、Secret、ClientSecret、ApiSecret、ChannelSecret
callbackUri 文本,对应ShareSDK.xml中的RedirectUrl、RedirectUri、CallbackUrl
shareByAppClient 布尔值,shareByAppClient标识是否使用客户端分享
bypassApproval 布尔值,bypassApproval表示是否绕过审核
enable 布尔值,enable字段表示此平台是否启用
userName 文本,userName在微信小程序中使用
path 文本,path在微信小程序中使用
hostType 文本,表示服务器类型,在YouDao和Evernote中使用
withShareTicket 布尔值,分享微信小程序时,分享出去的小程序被二次打开时可以获取到更多信息,true为能获取,反之不能;仅在微信中使用
miniprogramType 数字,分享微信小程序时,表示小程序的开发状态,取值范围:0-正式,1-开发,2-体验,仅在微信中使用

配置完以上信息后同步(sync)一下代码就可以调用相关的接口了

三、添加代码

1、初始化MobSDK

如果您没有在AndroidManifest中设置appliaction的类名,MobSDK会将这个设置为com.mob.MobApplication,但如果您设置了,请在您自己的Application类中调用:

1
MobSDK.init(this);

以初始化MobSDK。

添加配置后,即可调用授权、获取资料、分享等操作,如一键分享的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

private void showShare() {
     OnekeyShare oks = new OnekeyShare();
     //关闭sso授权
     oks.disableSSOWhenAuthorize();
     // title标题,微信、QQ和QQ空间等平台使用
     oks.setTitle(getString(R.string.share));
     // titleUrl QQ和QQ空间跳转链接
     oks.setTitleUrl("http://sharesdk.cn");
     // text是分享文本,所有平台都需要这个字段
     oks.setText("我是分享文本");
     // imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
     oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
     // url在微信、微博,Facebook等平台中使用
     oks.setUrl("http://sharesdk.cn");
     // comment是我对这条分享的评论,仅在人人网使用
     oks.setComment("我是测试评论文本");
    // 启动分享GUI
    oks.show(this);
}
}

四、混淆设置

ShareSDK已经做了混淆处理,再次混淆会导致不可预期的错误,请在您的混淆脚本中添加如下的配置,跳过对ShareSDK的混淆操作:

1
2
3
4
5
6
7
8
9
10

-keep class cn.sharesdk.**{*;}
-keep class com.sina.**{*;}
-keep class **.R$* {*;}
-keep class **.R{*;}
-keep class com.mob.**{*;}
-keep class m.framework.**{*;}
-dontwarn cn.sharesdk.**
-dontwarn com.sina.**
-dontwarn com.mob.**
-dontwarn **.R$*

五、可用的社交平台

任何配置在devInfo下的社交平台都是可用的,他们包括:

分类 平台名称
常用平台 SinaWeibo(新浪微博)、Wechat(微信好友)、WechatMoments(微信朋友圈)、QQ(QQ好友)、Facebook、FacebookMessenger
其它主流平台 TencentWeibo(腾讯微博)、QZone(QQ空间)、Renren(人人网)、Twitter、Douban(豆瓣)、Tumblr、GooglePlus(Google+)、Pinterest、Line、Instagram、Alipay(支付宝好友)、AlipayMoments(支付宝朋友动态)、Youtube、Meipai(美拍)
其它平台 WechatFavorite(微信收藏)、KaiXin(开心网)、Email(电子邮件)、ShortMessage(短信)、YouDao(有道云笔记)、Evernote(印象笔记)、LinkedIn(领英)、FourSquare、Flickr、Dropbox、VKontakte、Yixin(易信)、YixinMoments(易信朋友圈)、Mingdao(明道)、KakaoTalk、KakaoStory、WhatsApp、Pocket、Instapaper、Dingding(钉钉)、Telegram

六、注意事项

1. ShareSDK默认会添加OnekeyShare库,如果您不需要这个库,可以在ShareSDK下设置“gui false”来关闭OnekeyShare
2. MobSDK默认为ShareSDK提供最新版本的集成,如果您想锁定某个版本,可以在ShareSDK下设置“version “某个版本””来固定使用这个版本
3. 如果使用MobSDK的模块会被其它模块依赖,请确保依赖它的模块也引入MobSDK插件,或在此模块的gradle中添加:

Java
1
2
3
4
5

repositories {
    maven {
        url "http://mvn.mob.com/android"
    }
}

六、对微信的第三方登录说明

Demo:wechatlogin  此demo中有打包需要的keystore,密码是123456,微信登录需要正式打包签名测试

1、首先要把资源和微信的jar包复制到工程中,保证微信的开放平台的登录的权限一定要审核通过;

2、添加授权代码

1
2
3

Platform wechat= ShareSDK.getPlatform(Wechat.NAME);
wechat.setPlatformActionListener(paListener);
wechat.authorize();

3、申请key后替换sharesdk.xml默认的key

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

<Wechat
Id="4"
SortId="4"
AppId="wx4868b35061f87885"
AppSecret="64020361b8ec4c99936c0e3999a9f249"
BypassApproval="false"
Enable="true" />
<WechatMoments
Id="5"
SortId="5"
AppId="wx4868b35061f87885"
AppSecret="64020361b8ec4c99936c0e3999a9f249"
BypassApproval="false"
Enable="true" />
//此处可以在build.gradle中MobSDK中设置!!!

4、配置Manifest文件,配置sharesdk和配置微信回调

1
2
3
4
5

  <activity
        android:name="com.mob.tools.MobUIShell"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="stateHidden|adjustResize">

Java
1
2
3
4
5
6
7

<!--微信分享回调 -->
<activity
android:name=".wxapi.WXEntryActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
        android:configChanges="keyboardHidden|orientation|screenSize"
android:exported="true"
android:screenOrientation="portrait" />

cocos creator js端代码:

//微信登录weChatLogin : function(){//微信登录jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity","weChatLogin","()V");this.schedule(function(){var wxLoginSuccess = jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity","wxLoginIsSuccess","()Z");console.log("is success " + wxLoginSuccess);if(wxLoginSuccess){console.log("2222222222222222222222222222");//获得授权信息var autoInfo = jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity","getWxAutoMessage","()Ljava/lang/String;");var jsonInfo = JSON.parse(autoInfo);console.log("jsonInfo is " + jsonInfo);console.log("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" + autoInfo);//如果登录成功的话将授权信息发送给后端console.log("autoInfo is " + autoInfo);//关闭所有计数器this.unscheduleAllCallbacks(); if(autoInfo != ""){this.sendRequestToWXServer(autoInfo);}}},0.5);},

anduoid端实现细节:

首先在oncreate函数里面 先初始化微信即授权登录

Platform wechat= ShareSDK.getPlatform(Wechat.NAME);

/**** 微信登录** */public static void weChatLogin(){System.out.println("________________________");//设置微信授权相关信息wechat.setPlatformActionListener(new PlatformActionListener() {@Overridepublic void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {app.wxAutoMessage = platform.getDb().exportData();//微信登录成功app.isWxLoginSuccess = true;Toast.makeText(AppActivity.app, "登录成功", Toast.LENGTH_SHORT).show();System.out.println(app.wxAutoMessage);System.out.println("--------------<<<<<<<<<<<<<<<<<<<----------------");}@Overridepublic void onError(Platform platform, int i, Throwable throwable) {throwable.printStackTrace();}@Overridepublic void onCancel(Platform platform, int i) {System.out.println("已经取消操作");}});wechat.authorize();Platform wechatPlatform = ShareSDK.getPlatform(Wechat.NAME);System.out.println("<<<<---------------->>>>wechatPlatFrom is " + wechatPlatform);}public static boolean wxLoginIsSuccess(){System.out.println("微信是否登录成功:" + app.isWxLoginSuccess);return app.isWxLoginSuccess;}public static String getWxAutoMessage(){System.out.println("微信认证信息是:" + app.wxAutoMessage);return app.wxAutoMessage;}

这样我们可以把授权信息传给服务器去做验证:

然后再通过refresh_token获取到openid和access_token

通过js请求的方式:网址是:https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

js方法如下:

//获取access_token和openid等信息并将这些信息传给服务端getCode : function(refreshToken){var self = this;var url = 'https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=wx72f9006d0b1d9b7f&grant_type=refresh_token&refresh_token='+refreshToken;var xhr = new XMLHttpRequest();xhr.onreadystatechange = function(){if(xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 400)){self.weixinResponse = xhr.responseText;console.log("in getCode response is " + self.weixinResponse);//将数据放回出去self.sendToSeverOfWechat(self.weixinResponse);}}xhr.open("POST",url);xhr.send();},

cocos creator利用ShareSDK实现微信登录功能相关推荐

  1. 微信小游戏开发之微信登录功能的云开发实现方案选择

    主题 CocosCreator接入微信登录获取openid,微信登录实现方案调研过程 特别说明 CocosCreator微信小游戏开发系列文章,是我在逐步开发过程中,基于官方文档之上,记录一些重点内容 ...

  2. C#/Csharp桌面应用开发小作业小程序,类似微信登录功能的小软件

    (七) 微信APP是一款非常流行的及时通讯类应用软件,请利用所学的桌面应用开发知识,仿照完成一个类似微信登录功能的小软件,功能要求如下所示,最终效果见Demo文件夹: 软件需求及编码提示:  该软件 ...

  3. 英雄联盟微信登录服务器怎么回事,英雄联盟微信怎么登陆 lol微信登录功能开放大区一览...

    英雄联盟在5月6日开放了部分大区的微信登录功能,玩家们现在可在目前开放了微信登录功能的 大区使用微信登录,但需要将微信账号与已有QQ账号进行绑定,英雄联盟微信登录功能预计会在5月内于全大区开放,下面小 ...

  4. 【PHP学习】—利用ajax原理实现登录功能(八)

    [PHP学习]-利用ajax原理实现登录功能(八) 通过学习上篇文章我们发现这种方法存在了一定的缺陷,利用页面跳转,HTML页面访问服务器,要等待服务器响应,账号密码输入错误后,还要回退页面重新输入账 ...

  5. lol微信登录服务器,lol开放微信登录功能 lol微信怎么登陆

    lol开放微信登录功能 lol微信登录功能开放大区有哪些 英雄联盟在5月6日开放了部分大区的微信登录功能,玩家们现在可在目前开放了微信登录功能的 大区使用微信登录,但需要将微信账号与已有QQ账号进行绑 ...

  6. 微信登陆的LOL只有一个服务器,LOL:新功能!部分大区开放了微信登录功能,网友:有啥用?...

    原标题:LOL:新功能!部分大区开放了微信登录功能,网友:有啥用? 近日,LOL官方宣布从2019年5月6日开始,部分大区开通了微信登录功能,在5月内将录取开放其他所有大区微信登录功能. 据了解,此次 ...

  7. 微信登录功能实现(可用)

    本次实现微信登录功能,主要根据微信官方文档,流程如下 1微信登录接口实现思路,根据申请的, wx.open.app_id, wx.open.app_secret, wx.open.redirect_u ...

  8. lol微信登录服务器,LOL部分大区开放微信登录功能 什么区能微信登录?

    英雄联盟官方在5月6日发布公告,称征服之海,均衡教派,卡拉曼达,巨龙之巢,皮尔特沃夫,峡谷之巅,男爵领域,教育网率先开放微信登录功能. 亲爱的召唤师: 我们将于 5 月 6 日在征服之海,均衡教派,卡 ...

  9. 记录--uniapp上如何实现安卓app微信登录功能(操作流程总结)

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 uniapp上如何实现安卓app微信登录功能?下面本篇文章给大家分享一下uniapp上实现安卓app微信登录的权限申请.开发的具体操作流程 ...

最新文章

  1. SpringBoot之@EnableConfigurationProperties分析
  2. 图灵2010.06书讯
  3. Ansible — 编程 — 条件与循环
  4. 网页文字对齐(CSS)
  5. Ubuntu18.04安装配置jmol
  6. 64位传参利用方法LibcSearcher使用入门ROPgadget利用
  7. java常见不可变类_Java语言不可变类的诀窍
  8. Java jdt 编辑_JDT入门
  9. Node — 第九天 (ES6降级 and 发布属于自己的[第三方模块]包)
  10. 荣耀v40pro可以用鸿蒙系统,荣耀V40Pro快来了!麒麟9000+120Hz+鸿蒙系统,价格感人...
  11. ToString(C2)转人民币金额时的相关问题
  12. MySQL Index Merge Optimization
  13. android中在java代码中设置Button按钮的背景颜色
  14. How to research,22页PPT
  15. UIKit框架的介绍
  16. CO03生产订单“状态”值对应表和值描述对应表(TJ02T) 和通过BAPI(STATUS_TEXT_EDIT)获取
  17. java计算机毕业设计心灵治愈服务平台源码+mysql数据库+lw文档+系统+调试部署
  18. 系统错误:蓝屏提示IRQL-NOT-LESS-OR EQUAL
  19. Excel无法打开文件新建 XLSX 工作表.xlsx,因为文件格式或文件扩展名无效。请确定文件未损坏解决办法【笔记】
  20. 查看nginx是否启动成功

热门文章

  1. 读书笔记《Outlier Analysis》 第二章 异常检测的概率和统计模型
  2. zabbix4.2批量导入主机
  3. 用计算机桁架各杆内力,如何运用CAD求解桁架内力
  4. windows系统日志查看
  5. 软考-嵌入式系统设计师-笔记:计算机系统基础知识
  6. 未备案访问服务器网站,未备案域名怎样访问国内服务器
  7. 数据团队如何写年度总结和计划?
  8. 小霸王申请破产,爷青结!
  9. 使用Dart/Flutter语言开发的命令行文字RPG类型小游戏
  10. 服务器重装ie浏览器,window7系统如何重装IE浏览器|Win7系统IE浏览器出现Automation错误怎么解决?...