微信分享
2017-07-15 本文已影响117人
YuGoal
1.微信环境配置
1.微信平台申请创建应用https://open.weixin.qq.com,获取AppId等必要参数
2.添加本地jar包(或compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
)
3.manifests配置
<activity
android:name=".wxapi.WXEntryActivity"
android:exported="true"
android:label="@string/app_name"
android:launchMode="singleTop" />
分享回调界面设置
新建目录
wxapi
并新建WXEntryActivity
实现 IWXAPIEventHandler
(命名必须这样,不然微信回调找不到)
注意微信平台上的应用签名是否和app一样!!!
2.调用分享#
public class WXShareUtils extends Activity {
SendMessageToWX.Req req;
private static WXShareUtils instance = null;
public static synchronized WXShareUtils getInstance() {
if (instance == null) {
instance = new WXShareUtils();
}
return instance;
}
public IWXAPI getWxApi(Context context){
return App.WXapi;
}
/**
* 微信文本分享
* @param mContext
* @param text 内容
* @param description 消息描述
* @param tag 0:好友 1:朋友圈
*/
public void doTextSend(Context mContext,String text,String description,int tag) {
//初始化一个微信WXWebpageObject对象,填写url
WXTextObject textObject = new WXTextObject();
textObject.text = text;
//用WXWebpageObject对象初始化一个WXMediaMessage对象,填写标题,描述
WXMediaMessage msg = new WXMediaMessage(textObject);
//此处填写消息标题
msg.mediaObject = textObject;
//此处填写消息描述
msg.description = buildTransaction(description);
Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(), R.mipmap.ic_launcher);
msg.setThumbImage(bitmap);
//构造一个Req
req = new SendMessageToWX.Req();
req.transaction = buildTransaction("text");
req.message = msg;
if(tag == 0){
req.scene = SendMessageToWX.Req.WXSceneSession;
}else if(tag == 1){
req.scene = SendMessageToWX.Req.WXSceneTimeline;
}
App.WXapi.sendReq(req);
}
/**
* 微信url分享
*
* @param mContext
*/
public void doUrlSend(Context mContext,String url,String title,String description,int tag) {
//初始化一个微信WXWebpageObject对象,填写url
WXWebpageObject webpageObject = new WXWebpageObject();
webpageObject.webpageUrl = url;
//用WXWebpageObject对象初始化一个WXMediaMessage对象,填写标题,描述
WXMediaMessage msg = new WXMediaMessage(webpageObject);
//此处填写消息标题
msg.title = title;
//此处填写消息描述
msg.description = description;
Bitmap bitmap = BitmapFactory.decodeResource(mContext.getResources(),R.mipmap.ic_launcher);
msg.setThumbImage(bitmap);
//构造一个Req
req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");
req.message = msg;
if(tag == 0){
req.scene = SendMessageToWX.Req.WXSceneSession;
}else if(tag == 1){
req.scene = SendMessageToWX.Req.WXSceneTimeline;
}
App.WXapi.sendReq(req);
}
/**
* 论坛微信url分享
*
* @param mContext
*/
public void shareUrlSend(Context mContext,String url,String title,String description,Bitmap bitmap,int tag) {
//初始化一个微信WXWebpageObject对象,填写url
WXWebpageObject webpageObject = new WXWebpageObject();
webpageObject.webpageUrl = url;
//用WXWebpageObject对象初始化一个WXMediaMessage对象,填写标题,描述
WXMediaMessage msg = new WXMediaMessage(webpageObject);
//此处填写消息标题
msg.title = title;
//此处填写消息描述
msg.description = description;
Bitmap img = bitmap;
msg.setThumbImage(img);
//构造一个Req
req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");
req.message = msg;
if(tag == 0){
req.scene = SendMessageToWX.Req.WXSceneSession;
}else if(tag == 1){
req.scene = SendMessageToWX.Req.WXSceneTimeline;
}
App.WXapi.sendReq(req);
}
private String buildTransaction(final String type) {
return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
}
}