Android APP整合微信分享
微信开放平台-官方文档-Android接入指南
微信开放平台-官方文档-Android资源下载
文章目录
- 运行官方demo
- 自己项目
- 分享文字
- 分享到朋友圈
- 分享之后回调
运行官方demo
想要运行官方的demo可能需要以下几步
- 上面下载的项目可能报错,首先修改
gradle-wrapper.properties
中的distributionUrl
为你目前项目用的路径,build.gradle
中的com.android.tools.build:gradle
改为现在项目用的版本
还有一些报错,按照提示修复即可 - 添加release版本的签名配置
build.gradle
中的applicationId
改为现在项目的applicationId- Contants中APP_ID改为自己申请的
- 然后以release运行即可
- 如果需要有回调结果,还需要把文件夹的名字改成和上边的applicationId相同的文件夹名。具体操作是:选择图中图标,把Compact MIddle Packages前边√去掉
例如我的applicationId是com.aa.bb
那么,从末级开始修改马赛克遮住的文件夹名称:右键-refactor-rename
自己项目
build.gradle添加依赖
api 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
添加权限
<uses-permission android:name="android.permission.INTERNET" /><!-- for mta statistics, not necessary-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
注册到微信
可以参照上面下载的Android资源写
private static final String APP_ID = "wx......";
// IWXAPI 是第三方app和微信通信的openApi接口
private IWXAPI api;// 通过WXAPIFactory工厂,获取IWXAPI的实例
api = WXAPIFactory.createWXAPI(this, APP_ID, true);
// 将应用的appId注册到微信
api.registerApp(APP_ID);
分享文字
复制demo中代码即可
public class MainActivity extends AppCompatActivity {private static final String APP_ID = "wx......";// IWXAPI 是第三方app和微信通信的openApi接口private IWXAPI api;private Button btn1;private String text;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);// 通过WXAPIFactory工厂,获取IWXAPI的实例api = WXAPIFactory.createWXAPI(this, APP_ID, true);// 将应用的appId注册到微信api.registerApp(APP_ID);text = "你好";btn1 = findViewById(R.id.btn1);btn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {WXTextObject textObj = new WXTextObject();textObj.text = text;WXMediaMessage msg = new WXMediaMessage();msg.mediaObject = textObj;// msg.title = "Will be ignored";msg.description = text;msg.mediaTagName = "我是mediaTagName啊";SendMessageToWX.Req req = new SendMessageToWX.Req();req.transaction = buildTransaction("text");req.message = msg;req.scene = SendMessageToWX.Req.WXSceneSession;api.sendReq(req);}});}private String buildTransaction(final String type) {return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();}
}
如果 添加release版本的签名配置都配置好了,那么选择release即可运行了
分享到朋友圈
只需修改刚才代码
//req.scene = SendMessageToWX.Req.WXSceneSession;
req.scene = SendMessageToWX.Req.WXSceneTimeline;
其他分享内容例如分享图片等,参照demo中代码即可
分享之后回调
如果你的程序需要接收微信发送的请求,或者接收发送到微信请求的响应结果,需要下面 3 步操作:
a. 在你的包名相应目录下新建一个 wxapi 目录,并在该 wxapi 目录下新增一个 WXEntryActivity 类,该类继承自 Activity(例如应用程序的包名为 net.sourceforge.simcpux,则新添加的类如下图所示)
manifest中注册
<activityandroid:name=".wxapi.WXEntryActivity"android:label="@string/app_name"android:theme="@android:style/Theme.Translucent.NoTitleBar"android:exported="true"android:taskAffinity="net.sourceforge.simcpux"android:launchMode="singleTask">
</activity>
b. 实现 IWXAPIEventHandler 接口,微信发送的请求将回调到 onReq 方法,发送到微信请求的响应结果将回调到 onResp 方法
c.接收intent
当微信发送请求到你的应用,将通过 IWXAPIEventHandler 接口的 onReq 方法进行回调,类似的,应用请求微信的响应结果将通过 onResp 回调
一个基本的WXEntryActivity代码如下:
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {private static final String APP_ID = "wx......";private IWXAPI api;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);api = WXAPIFactory.createWXAPI(this, APP_ID, false);try {Intent intent = getIntent();api.handleIntent(intent, this);} catch (Exception e) {e.printStackTrace();}}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);setIntent(intent);api.handleIntent(intent, this);}@Overridepublic void onReq(BaseReq req) {}@Overridepublic void onResp(BaseResp resp) {int result = 0;switch (resp.errCode) {case BaseResp.ErrCode.ERR_OK:result = R.string.errcode_success;break;case BaseResp.ErrCode.ERR_USER_CANCEL:result = R.string.errcode_cancel;break;case BaseResp.ErrCode.ERR_AUTH_DENIED:result = R.string.errcode_deny;break;case BaseResp.ErrCode.ERR_UNSUPPORT:result = R.string.errcode_unsupported;break;default:result = R.string.errcode_unknown;break;}Toast.makeText(this, getString(result) + ", type=" + resp.getType(), Toast.LENGTH_SHORT).show();finish();}
}
这是最基本的,其他附加功能,参考demo中的代码
Android APP整合微信分享相关推荐
- android微信照片未发送成功,解决Android整合微信分享无法发送图片问题
正在做的android app有微信分享功能,下载了官方的SDK后按照里面的代码做了,我主要用的是分享网页url,发现文字和网页URL都可以发送,唯独带图片的消息有时成功有时失败,于是对比了成功和失败 ...
- Android app集成微信支付
Android app集成微信支付 鉴于微信支付的文档入口不太容易找到.以及文档中有些逻辑不通或者容易产生歧义或者缺失一些信息的情况,记录下此次接入的流程和需要关注的一些点. 使用的是app支付-&g ...
- android开发微信分享功能,Android编程实现微信分享信息的方法
本文实例讲述了Android编程实现微信分享信息的方法.分享给大家供大家参考,具体如下: 随着微信越来越火,越来越多的应用要求有分享到微信的功能.虽然有很多平台都帮集成有分享功能,比如友盟.但是个人觉 ...
- android快速集成微信分享支付
前言 最近公司的项目中有又又又又微信分享和支付的功能,每次我都会重新集成,为了方便以后的开发,以及方便各位同仁的开发,整合了这次开发的一些点滴,方便亲们快速集成微信分享和支付. 参考文档 –1.微信官 ...
- Vux+Cordova打包的安卓App实现微信分享朋友和朋友圈
知识储备 Cordova Plugin ShareSDK 插件 什么是Cordova Plugin ShareSDK Cordova Plugin ShareSDK封装了ShareSDK的androi ...
- android sdk引入 微信分享_微信分享sdk接入总结
本文主要讲解android微信分享sdk的接入和中级遇到的一些问题解决. 首先需要在微信开放平台申请账号,新建一个应用,生成AppID. 1 下载微信SDK sample demo源码和生成签名的工具 ...
- android sdk引入 微信分享_Android分享 ShareSDK微信分享详解
本文转载自: http://www.it165.net/pro/html/201508/50793.html (只作转载, 不代表本站和博主同意文中观点或证实文中信息) 目前市面上大大小小的软件,几乎 ...
- Android应用接入微信分享,以及遇到的坑
本文转载自lc_miao的博客:https://blog.csdn.net/lc_miao/article/details/79855687 目录 一.申请应用 二.配置微信分享的SDK 三.微信分享 ...
- Android——App内文件分享功能
国内的Android开发者,在遇到App内有分享功能时,基本都是对接友盟分享.ShareSDK分享等第三方SDK.简单的集成SDK以及配置之后,即可分享至多个不同App平台.反而很少来使用Androi ...
最新文章
- VMware-使用VMware在本地搭建多个CentOS虚机
- JAVA web项目报错no sigar-x86-winnt.dll in java.library.path
- 统计学习方法第十章作业:HMM模型—概率计算问题、Baum-Welch学习算法、维特比预测算法 代码实现
- mysql数据库备份总结_MySQL数据库备份总结
- 【转】云服务器cvm 云服务器ecs区别
- Flutter嵌套深?扩展函数了解一下
- 互联网晚报 | 1月29日 星期六 | 支付宝相互宝正式关停;大钲资本成瑞幸咖啡实控人;苹果创有史以来最高单季营收...
- 你需求什么样的图片素材资源,各种口味随你挑选!
- Git 官方安装教程
- python encode和decode函数说明
- 切实把握大数据时代的新机遇新变革
- Material Theme
- 某CRM旗舰版功能齐全客户管理系统源码
- Hibernate 、继承关联映射
- 雅俗共赏——广告词之很美很强大的汉语言
- 计算机音乐谱策马奔腾,策马奔腾简谱
- 石家庄规划建设智慧城市 三年后城市将大变样
- oracle Error: PLS-00905: 对象 HBH.QRY_QUERYDATA 无效
- SQLMAP插件tamper编写与使用
- 马库斯批判Hinton、吴恩达、LeCun等煽风点火!炒作将带来AI寒冬