美文网首页
微信分享

微信分享

作者: YuGoal | 来源:发表于2017-07-15 11:33 被阅读117次

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();
    }
}

相关文章

网友评论

      本文标题:微信分享

      本文链接:https://www.haomeiwen.com/subject/tivahxtx.html