微信分享支付在当前应用中已经很普遍了,然还是有很多同学不会,其实接人第三方的东西是开发中最简单的了,主要是步骤不要乱,接下来就是详细步骤了:
一、将新建的项目运行到手机上,记住要安装用密钥打包后的apk,然后去微信开放平台下载签名工具,安装到手机上。
二、将项目的包名复制到微信签名工具获取签名。
三、在微信开发平台申请应用,签名填刚刚微信签名工具获取到的,
这样第一步就完成了,接下来就是app的活了。
四、在清单文件AndroidManifest中添加代码
五、在工程目录下建微信包
记住名字位置不能错
六、最简单了,复制这个类去微信包下
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
private Context context;
private IWXAPI iwxapi;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
context = this;
iwxapi = WXAPIFactory.createWXAPI(this, Uitl.WX_APPID, false);
iwxapi.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
iwxapi.handleIntent(intent, this);
}
@Override
public void onReq(BaseReq req) {//发送请求时调用
// TODO Auto-generated method stub
System.out.println("---------req"+req);
}
@Override
public void onResp(BaseResp resp) {
// TODO Auto-generated method stub
String result = "";
System.out.println("---------a"+resp.errCode);
switch (resp.errCode) {
case BaseResp.ErrCode.ERR_OK:
//分享成功
Toast.makeText(context, "成功", Toast.LENGTH_SHORT).show();
this.finish();
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
//分享取消
Toast.makeText(context, "取消", Toast.LENGTH_SHORT).show();
result = "发送取消";
this.finish();
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
//分享拒绝
Toast.makeText(context, "拒绝", Toast.LENGTH_SHORT).show();
result = "发送被拒绝";
this.finish();
break;
default:
//amrak
result = "发送返回";
Toast.makeText(context, result, Toast.LENGTH_SHORT).show();
finish();
break;
}
}
}
七、分享工具类也给你了,直接调用吧
package superdata.com.superdata.utils;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.content.FileProvider;
import com.tencent.connect.share.QQShare;
import com.tencent.connect.share.QzoneShare;
import com.tencent.mm.opensdk.modelmsg.SendMessageToWX;
import com.tencent.mm.opensdk.modelmsg.WXImageObject;
import com.tencent.mm.opensdk.modelmsg.WXMediaMessage;
import com.tencent.mm.opensdk.modelmsg.WXWebpageObject;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import com.tencent.open.utils.ThreadManager;
import com.tencent.tauth.IUiListener;
import com.tencent.tauth.Tencent;
import java.io.File;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
/**
- Created by hx on 2017/8/16.
*/
public class ShareUtil {
//public static final String WX_APP_ID = "";//改成你在微信开放平台审核通过的appID
private static IWXAPI iwxapi;
public ShareUtil() {
super();
// TODO Auto-generated constructor stub
}
/**要分享必须先注册(微信)*/
public static void regToWX(Context context) {
iwxapi = WXAPIFactory.createWXAPI(context, Uitl.WX_APPID, true);
iwxapi.registerApp(Uitl.WX_APPID);
}
public IWXAPI getIwxapi() {
return iwxapi;
}
public void setIwxapi(IWXAPI iwxapi) {
this.iwxapi = iwxapi;
}
public Tencent getTencent() {
return tencent;
}
public void setTencent(Tencent tencent) {
this.tencent = tencent;
}
public String getWxAppId() {
return Uitl.WX_APPID;
}
/**
* 分享图片
* @param bitmap 图片
* @param shareType 0:分享到好友 1:分享到朋友圈
*/
public static void sharePicture(Bitmap bitmap, int shareType) {
WXImageObject imgObj = new WXImageObject(bitmap);
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgObj;
Bitmap thumbBitmap = Bitmap.createScaledBitmap(bitmap, 100, 100, true);
bitmap.recycle();
msg.thumbData = Uitl.bmpToByteArray(thumbBitmap); //设置缩略图
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("imgshareappdata");
req.message = msg;
req.scene = shareType;
iwxapi.sendReq(req);
}
/**分享到微信好友*/
public static void shareToWXSceneSession(String url, String shareTitle, String description){
WXWebpageObject webpageObject = new WXWebpageObject();
webpageObject.webpageUrl = url;
WXMediaMessage mWxMediaMessage = new WXMediaMessage(webpageObject);
mWxMediaMessage.title = shareTitle;
mWxMediaMessage.description = description;
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());//transaction字段用于唯一标识一个请求
req.message = mWxMediaMessage;
req.scene = SendMessageToWX.Req.WXSceneSession;
iwxapi.sendReq(req);
}
/**分享到微信收藏*/
public void shareToWXSceneFavorite(String url,String shareTitle,String description){
WXWebpageObject webpageObject = new WXWebpageObject();
webpageObject.webpageUrl = url;
WXMediaMessage wxMediaMessage = new WXMediaMessage(webpageObject);
wxMediaMessage.title = shareTitle;
wxMediaMessage.description = description;
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = wxMediaMessage;
req.scene = SendMessageToWX.Req.WXSceneFavorite;
iwxapi.sendReq(req);
}
/**分享到微信朋友圈*/
public void shareToWXSceneTimeline(String url,String shareTitle,String description,String imageUrl){
WXWebpageObject webpageObject = new WXWebpageObject();
webpageObject.webpageUrl = url;
WXMediaMessage mediaMessage = new WXMediaMessage(webpageObject);
mediaMessage.title = shareTitle;
mediaMessage.description = description;
Bitmap bitmap = BitmapFactory.decodeFile(imageUrl);
Bitmap thumBmp = Bitmap.createScaledBitmap(bitmap, 150, 150, true);//图片大小有限制,太大分享不了
//mediaMessage.thumbData = Tools.getBitmapByte(thumBmp);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = mediaMessage;
req.scene = SendMessageToWX.Req.WXSceneTimeline;
iwxapi.sendReq(req);
}
}
至此,微信分享就完美的完成了!!!!!!!!!!!!!!!!!!!