Android微信分享个人摸索详细心得

我的第一篇博客,记录我的Android学习之旅。今天学习了安卓微信分享,查看了开发文档并看了前辈们的经验分享,终于成功集成到我的应用中。现在从零开始一步一步集成:

一、https://open.weixin.qq.com/先到微信开放平台审核通过一个APP,通过后官方会给你这个AppID:

二、查看开发信息,需要输入两个信息,一个是应用包名,就是你自己的APP包名,另一个是签名,需要下载一个官方的一个签名生成工具来获取。

三、获得了APPID和签名后就可以开始集成了,先下载最新的官方SDK包。

下好之后再libs目录下复制jar包到自己工程的libs目录,添加依赖。

然后查看官方Demo中有个Contants类,复制到自己工程下,然后在Constant中添加你自己的Appid:

public class Constants {
   // APP_ID 替换为你的应用从官方网站申请到的合法appId
    public static final String APP_ID = "xxxxxxxxxxxxxx";

    public static class ShowMsgActivity {
      public static final String STitle = "showmsg_title";
      public static final String SMessage = "showmsg_message";
      public static final String BAThumbData = "showmsg_thumb_data";
   }
}

接下来添加权限:

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

然后在初始化的时候添加wxApi的两句语句(也可以在继承了application的类中进行初始化,前提是记得要在AndroidManifest中写app的name):

private IWXAPI wxApi;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    View inflate = inflater.inflate(R.layout.fragment_information, container, false);
    ButterKnife.bind(this, inflate);
    //实例化
    wxApi = WXAPIFactory.createWXAPI(getActivity(), Constants.APP_ID);
    wxApi.registerApp(Constants.APP_ID);
    return inflate;
}
然后根据官网介绍,它有请求和响应两个类来与微信进行交互:

请求:(flag==0时发送给朋友,flag==1时发送到朋友圈,默认发送给朋友)

/**
 * 微信分享 (这里仅提供一个分享网页的示例,其它请参看官网示例代码)
 * @param flag(0:分享到微信好友1分享到微信朋友圈)
 */
private void wechatShare(int flag){
    WXWebpageObject webpage = new WXWebpageObject();
    webpage.webpageUrl = "www.baidu.com";
    WXMediaMessage msg = new WXMediaMessage(webpage);
    msg.title = "title";
    msg.description = "description";
    //这里替换一张自己工程里的图片资源
    Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    msg.setThumbImage(thumb);

    SendMessageToWX.Req req = new SendMessageToWX.Req();
    req.transaction = String.valueOf(System.currentTimeMillis());
    req.message = msg;
    req.scene = flag==0?SendMessageToWX.Req.WXSceneSession:SendMessageToWX.Req.WXSceneTimeline;
    wxApi.sendReq(req);
}
响应:只需写一个类来实现IWXAPIEventHandler接口,重写onReq()和onResp()方法就可以达到回调的效果(我自己用的时候虽然分享成功了却没有效果)。

package com.tencent.mm.sdk.openapi;

import com.tencent.mm.sdk.modelbase.BaseReq;
import com.tencent.mm.sdk.modelbase.BaseResp;

public interface IWXAPIEventHandler {
    void onReq(BaseReq var1);

    void onResp(BaseResp var1);
}

结束,收工!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值