zoukankan      html  css  js  c++  java
  • Android 分享微信好友 朋友圈

    第三方应用,可以调用微信分享,把链接,文字,各种media,分享到微信好友或者微信朋友圈,步骤:

    package com.edaixi.utils;
    
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.widget.Toast;
    import com.edaixi.activity.R;
    import com.tencent.mm.sdk.constants.ConstantsAPI;
    import com.tencent.mm.sdk.modelbase.BaseReq;
    import com.tencent.mm.sdk.modelbase.BaseResp;
    import com.tencent.mm.sdk.modelmsg.SendAuth;
    import com.tencent.mm.sdk.modelmsg.SendMessageToWX;
    import com.tencent.mm.sdk.modelmsg.WXMediaMessage;
    import com.tencent.mm.sdk.modelmsg.WXWebpageObject;
    import com.tencent.mm.sdk.openapi.IWXAPI;
    import com.tencent.mm.sdk.openapi.IWXAPIEventHandler;
    import com.tencent.mm.sdk.openapi.WXAPIFactory;
    
    public class WX_Share implements IWXAPIEventHandler{
        private IWXAPI api;
        private Context context;
        private int flag;//0 表示分享给微信好友哦,1表示分享到朋友圈
    
        public WX_Share(Context context,int flag) {
            super();
            this.context = context;
            this.flag = flag;
            registWX();
        }
    
        public void registWX() {
            api = WXAPIFactory.createWXAPI(context, Constants.APP_ID, true);
            api.registerApp(Constants.APP_ID);
        }
    
        public void share2WX() {  
            if (!api.isWXAppInstalled()) {  
                Toast.makeText(context, "您还未安装微信客户端", Toast.LENGTH_SHORT).show();  
                return;  
            }  
            WXWebpageObject webpage = new WXWebpageObject();  
            webpage.webpageUrl = "http://www.edaixi.com";  
            WXMediaMessage msg = new WXMediaMessage(webpage);  
          
            msg.title = "my test title...";  
            msg.description = context.getResources().getString(R.string.wx_share_content);  
            Bitmap thumb = BitmapFactory.decodeResource(context.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;  
            api.sendReq(req);  
        }
    
        @Override
        public void onReq(BaseReq arg0) {
            
        }
    
        @Override
        public void onResp(BaseResp resp) {
            Toast.makeText(context, "openid = " + resp.openId, Toast.LENGTH_SHORT).show();
            
            if (resp.getType() == ConstantsAPI.COMMAND_SENDAUTH) {
                Toast.makeText(context, "code = " + ((SendAuth.Resp) resp).code, Toast.LENGTH_SHORT).show();
            }
            
            String result = "";
            
            switch (resp.errCode) {
            case BaseResp.ErrCode.ERR_OK:
                result = "-sucessful-";
                break;
            case BaseResp.ErrCode.ERR_USER_CANCEL:
                result = "-cancle-";
                break;
            case BaseResp.ErrCode.ERR_AUTH_DENIED:
                result = "-error code-";
                break;
            default:
                result = "-unknow  error-";
                break;
            }
            
            Toast.makeText(context, result, Toast.LENGTH_LONG).show();
        
        }  
    }
  • 相关阅读:
    SEM关键词的三种分类方式
    分分钟解决 MySQL 查询速度慢与性能差
    为什么notify(), wait()等函数定义在Object中,而不是Thread中
    wait(), notify(), notifyAll()等方法介绍
    Java中的Volatile和synchronized的区别
    史上最简单的 SpringCloud 教程
    如何用git将项目代码上传到github
    常见排序
    【CodeForces】9B-Running Student
    【CodeForces】9A-Die Roll
  • 原文地址:https://www.cnblogs.com/spring87/p/4332828.html
Copyright © 2011-2022 走看看