Android --之WeChat分享
来源:互联网 发布:淘宝上主板可靠吗 编辑:程序博客网 时间:2024/06/05 20:15
WechatShare:
1.申请你的AppID
请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该应用提交审核,只有审核通过的应用才能进行开发。
2.下载SDK及API文档
Android Studio环境下:
在build.gradle文件中,添加如下依赖即可:
dependencies { compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'}
或
dependencies { compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'}
(其中,前者包含统计功能)
3.搭建开发环境
Android Studio环境下:
在Android Studio中新建你的工程,并保证网络设置可以成功从jcenter下载微信SDK即可。
4.在代码中使用开发工具包
[1] AndroidManifest.xml 设置
添加必要的权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
[2] 注册到微信
要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。(如下图所示,可以在程序入口Activity的onCreate回调函数处,或其他合适的地方将你的应用id注册到微信。注册函数示例如下图所示。
//WX_APP_ID替换为应用从官网申请到的合法appidprivate static final String WX_APP_ID = ""; //IWXAPI是第三方app和微信通信的openapi接口private IWXAPI api; ......private void register() { //通过WXAPIFactory工厂,获取IWXAPI的实例 api = WXAPIFactory.createWXAPI(this, WX_APP_ID, true); //将应用的appid注册到微信 api.registerApp(WX_APP_ID); }
[3] 发送请求或响应到微信
现在,你的程序要发送请求或发送响应到微信终端,可以通过IWXAPI的 sendReq 和 sendResp 两个方法来实现。
boolean sendReq(BaseReq req);
sendReq是第三方app主动发送消息给微信,发送完成之后会切回到第三方app界面。
boolean sendResp(BaseResp resp);
sendResp是微信向第三方app请求数据,第三方app回应数据之后会切回到微信界面。
WXTextObject textObj = new WXTextObject(); textObj.text = "简简单单 一个测试而已"; WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = textObj; // msg.title = "Will be ignored"; msg.description = "你真的以为我就是一个测试 "; SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("text"); req.message = msg; req.scene = SendMessageToWX.Req.WXSceneSession; api.sendReq(req);
需要注意的是
SendMessageToWX.Req的scene成员,如果scene填WXSceneSession,那么消息会发送至微信的会话内。如果scene填WXSceneTimeline(微信4.2以上支持,如果需要检查微信版本支持API的情况, 可调用IWXAPI的getWXAppSupportAPI方法,0x21020001及以上支持发送朋友圈),那么消息会发送至朋友圈。scene默认值为WXSceneSession。
[4] 接收微信的请求及返回值
如果你的程序需要接收微信发送的请求,或者接收发送到微信请求的响应结果,需要下面3步操作:
a. 在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity
b. 实现IWXAPIEventHandler接口,微信发送的请求将回调到onReq方法,发送到微信请求的响应结果将回调到onResp方法
c. 在WXEntryActivity中将接收到的intent及实现了IWXAPIEventHandler接口的对象传递给IWXAPI接口的handleIntent方法,示例如下图:
当微信发送请求到你的应用,将通过IWXAPIEventHandler接口的onReq方法进行回调,类似的,应用请求微信的响应结果将通过onResp回调。
注意事项
[1]如果需要混淆代码,为了保证sdk的正常使用,需要在proguard.cfg加上下面两行配置:
-keep class com.tencent.mm.opensdk.** { *;}-keep class com.tencent.wxop.** { *;}-keep class com.tencent.mm.sdk.** { *;}
清单小计:
android.content.ActivityNotFoundException: Unable to find explicit activity class { com.tencent.mm /com.tencent.mm.ui.LauncherUI}; have you declared this activity in your AndroidManifest.xml?
1.查看AndroidManifest文件内是否已注册
2.那就表示你的设备上没有安装微信
另外,WeChat测试需要打正式包运行方可验证效果.
- Android --之WeChat分享
- android ShareSdk wechat分享笔记
- wechat-web-devtools 之linux
- Android第三方登陆之微信Wechat、WeiXin篇(原生登陆授权)
- Android之PreferenceActivity 分享
- android之分享
- Android之Handler分享
- Android分享之贺卡
- Android 之 QQ分享
- 项目之余安装Wechat----传文件!
- IOS 之砸壳2-Wechat Header
- 微信JSSDK分享接口,wechat,share ,onMenuShareAppMessage wx.onMenuShareTimeline
- wechat-sdk-android-with-mta:+ failed
- Spring AOP 动态代理机制
- java文件上传下载
- 线程与进程 计算密集型 IO密集型
- Java Dao设计模式
- 微信支付后台代码
- Android --之WeChat分享
- Python3 解释器 PyCharm 破解、汉化(适用所有系统 Mac、Linux、Windows等)
- Spring注释笔记
- 内存的分类与结构
- PHP
- hive内部表与外部表的区别 与Hive数据存储
- Weakly supervised object recognition with convolutional neural networks 论文解读
- python爬取豆瓣读书的书名与简介
- js随笔之事件流