微信分享集成攻略

一份完整的Android 微信分享集成攻略

一、开发前的准备工作

1.登录微信开放平台填写自己的开发者信息,等待审核通过进行下一步

开放平台地址: https://open.weixin.qq.com/

2. 在开放平台(上步审核通过的账号下)创建注册自己的APP





开放平台创建自己的应用

___________

2.1 创建爱你应用时候要求填写包名 请在自己项目的build.gradle文件中获取 applicationId字段对应的值

2.2 填写自己的签名,,请不要直接添加命令行运行得到的签名,具体规则如下



获取签名

___________

2.2.1 下载微信官方提供的应用APP

https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk

2.2.2 安装到手机之后,填写好自己的包名,applicationId字段对应的值

2.2.3 获取对应的签名

下面是审核通过的APP

3.如果有需要更改自己的APP的签名信息,请记得隔天测试和使用,微信后台需要时间变更,切记!

注意如果临时改变了签名或者包名,当时还不能生效(也就是你APP用不了微信的功能了),可能得等个一天才能生效!!!!血的教训!!

二、集成sdk

1.在项目的build.gradle中引入依赖库

compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.1.6'

2.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"/>

3. 注册到微信

要使你的程序启动后微信终端能响应你的程序,必须在代码中向微信终端注册你的id。(如下图所示,可以在程序入口Activity的onCreate回调函数处,或其他合适的地方将你的应用id注册到微信。注册函数示例如下图所示。

IWXAPI api = WXAPIFactory.createWXAPI(this, WeChartConfig.APP_ID, false);
4.对分享,我做了如下的封装,请结合自己的需求使用

里面结合了微信纯文字分享,微信纯图片分享,音乐分享,视频分享,网页分享等,请自己创建这个文件,按照说明调用

分享中注意,所有配图片的位置,图片的大小都不应该大于32k,请自行处理

超过大小报错 checkArgs fail, thumbData is invalid

解决办法: 压缩bitmap的大小

5.当前activity实现IWXAPIEventHandler接口,设置接收分享成功或失败的回调
// 微信发送请求到第三方应用时,会回调到该方法
@Override
public void onReq(BaseReq req) {
    Toast.makeText(this, "openid = " + req.openId, Toast.LENGTH_SHORT).show();

    switch (req.getType()) {
        case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:

            break;
        case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:

            break;
        case ConstantsAPI.COMMAND_LAUNCH_BY_WX:

            break;
        default:
            break;
    }
}


// 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法
@Override
public void onResp(BaseResp resp) {
    Toast.makeText(this, "openid = " + resp.openId, Toast.LENGTH_SHORT).show();

    if (resp.getType() == ConstantsAPI.COMMAND_SENDAUTH) {
        Toast.makeText(this, "code = " + ((SendAuth.Resp) resp).code, Toast.LENGTH_SHORT).show();
    }

    String result = "";

    switch (resp.errCode) {
        case BaseResp.ErrCode.ERR_OK:
            result = "分享成功";
            break;
        case BaseResp.ErrCode.ERR_USER_CANCEL:
            result = "分享被取消";
            break;
        case BaseResp.ErrCode.ERR_AUTH_DENIED:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值