安卓应用集成微信分享
官方文档
本文的介绍的是cocos2dx安卓平台接入微信分享功能(PS:微信登陆功能要给钱才能有)。参考的文档在“资源中心”->“移动应用”->“接入指南”->“Android接入指南”。
创建应用
登录微信开放平台后,“管理中心”->“移动应用”->“创建移动应用”。
创建应用的过程还挺繁琐的,需要手持身份证的照片,还需要APP的运行流程图。我记得以前没这么复杂的。
还有就是未上架的应用在使用登陆、分享等功能的时候,都有1天100次这样的限制。
假设你创建好了应用并且审核通过了,就会得到AppID和AppSecret。
“分享到朋友圈”和“发送给朋友”这两个功能是默认给你使用的。
但是“微信登录”、“微信支付”等功能是要认证过的开发者才有的。那么认证开发者需要什么呢?钱。
代码里要做的
用 Android Studio 打开工程,在模块级的 build.gradle 文件中添加微信所需的依赖项
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
官方文档上写的
+
,有时候同步不下来,在External Libraries
那里没看到微信的包。
然后参考了这篇文章
也就是去这里搜wechat-sdk
就能看到最新的版本号。然后把加号改成版本号就行了。我这会儿用的是6.6.23
。在 AndroidManifest.xml 文件里需要申请权限。
在程序启动时注册到微信。大概是这个样子:
public class AppActivity extends Cocos2dxActivity { // APP_ID 替换为你的应用从官方网站申请到的合法appID private static final String APP_ID = "你的APP ID"; // IWXAPI 是第三方app和微信通信的openApi接口 public static IWXAPI api; protected void onCreate(Bundle savedInstanceState) { // DO OTHER INITIALIZATION BELOW regToWx(); } public void regToWx() { // 通过WXAPIFactory工厂,获取IWXAPI的实例 api = WXAPIFactory.createWXAPI(this, APP_ID, false); // 将应用的appId注册到微信 api.registerApp(APP_ID); } }
发送文本给朋友的示例
public class AppActivity extends Cocos2dxActivity { public static void share_text_to_friend(final String s) { //初始化一个 WXTextObject 对象,填写分享的文本内容 WXTextObject textObj = new WXTextObject(); textObj.text = s; //用 WXTextObject 对象初始化一个 WXMediaMessage 对象 WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = textObj; msg.description = s; SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = String.valueOf(System.currentTimeMillis()); //transaction字段用与唯一标示一个请求 req.message = msg; req.scene = WXSceneSession; //调用api接口,发送数据到微信 api.sendReq(req); } }
到这里,应该能拉起微信分享了。如果提示“签名不对,请检查签名是否与开放平台上填写的一致。”
在“资源中心”->“资源下载”->“Android资源下载”->“签名生成工具”。
用这个apk输入你的报名,用得到的字符串,更新应用签名。