Android 分享(网址)微信,微信朋友圈,QQ,QQ空间,分享小程序

第一步:通过微信开放平台、腾讯开放平台拿到appId
第二部:根据官方文档配置相关信息

/**
 * 注册微信
 */
private void regToWx() {
    // 通过WXAPIFactory工厂,获取IWXAPI的实例
    mIWXAPI = WXAPIFactory.createWXAPI(mContext, PublicResource.WX_APPID, true);

    // 将应用的appId注册到微信
    mIWXAPI.registerApp(WX_APPID);
}

/**
 * 注册QQ
 */
private void regToQQ() {
    mTencent = Tencent.createInstance(QQ_APPID, mContext);
}
/**
 * qq好友
 */
private void shareToQQ() {
    Bundle params = new Bundle();
    params.putInt(QQShare.SHARE_TO_QQ_KEY_TYPE, QQShare.SHARE_TO_QQ_TYPE_DEFAULT);
    params.putString(QQShare.SHARE_TO_QQ_TITLE, "标题");// 标题
    params.putString(QQShare.SHARE_TO_QQ_SUMMARY, "描述");// 摘要
    params.putString(QQShare.SHARE_TO_QQ_TARGET_URL, "用户点击是打开的网址(如:app下载链接)");// 内容地址

    params.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, "一般是app logo");// 网络图片地址 url  
    params.putString(QQShare.SHARE_TO_QQ_APP_NAME, "应用名称");// 应用名称    params.putString(QQShare.SHARE_TO_QQ_EXT_INT, "");
    // 分享操作要在主线程中完成
    mTencent.shareToQQ(getActivity(), params, new MyIUiListener ());
}
/** 
* qq空间
*/
private void shareToQZone() {
    Bundle params2 = new Bundle();    params2.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE,QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT);
    params2.putString(QzoneShare.SHARE_TO_QQ_TITLE, "标题");// 标题
    params2.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, "描述");// 摘要
    params2.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL,描述);// 内容地址
    ArrayList imgUrlList = new ArrayList<>();
    imgUrlList.add("一般是app logo");
    params2.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL,imgUrlList);// 图片地址
    // 分享操作要在主线程中完成
mTencent.shareToQzone(getActivity(), params2,new MyIUiListener ());}
/**
 * 微信分享朋友圈 好友
 * @param friendsCircle true:朋友圈  false:好友
 */
public void share(boolean friendsCircle){
    WXWebpageObject webpage = new WXWebpageObject();
    webpage.webpageUrl ="用户点击是打开的网址(如:app下载链接)";//分享url
    WXMediaMessage msg = new WXMediaMessage(webpage);
    msg.title = "标题";
    msg.description = "描述";

    Bitmap bit=ImageUtils.getBitmap(R.mipmap.test);//一般logo 本地图片就行
    msg.thumbData =Bitmap2Bytes(bit);//封面图片byte数组

    SendMessageToWX.Req req = new SendMessageToWX.Req();
    req.transaction = String.valueOf(System.currentTimeMillis());
    req.message = msg;
    req.scene = friendsCircle ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
    api.sendReq(req);
}

 

    /**
     * 分享小程序(只能微信好友)
     */
    public void appletShare(){
        WXMiniProgramObject miniProgramObj = new WXMiniProgramObject();
        miniProgramObj.webpageUrl = "这儿兼容微信低版本,我填写的是app下载地址"; // 兼容低版本的网页链接
        miniProgramObj.miniprogramType = WXMiniProgramObject.MINIPTOGRAM_TYPE_RELEASE;// 正式版:0,测试版:1,体验版:2
        miniProgramObj.userName = "小程序原始id";     // 小程序原始id
        miniProgramObj.path = "小程序页面路径";            //小程序页面路径
        WXMediaMessage msg = new WXMediaMessage(miniProgramObj);
        msg.title = "标题";                    // 小程序消息title
        msg.description = "描述";               // 小程序消息desc

        Bitmap bit=ImageUtils.getBitmap(R.mipmap.test);         //分享出去时显示的图片 一般5:3 
        msg.thumbData = Bitmap2Bytes(bit);                      // 小程序消息封面图片,小于128k


        SendMessageToWX.Req req = new SendMessageToWX.Req();
//        req.transaction = buildTransaction("webpage");
        req.message = msg;
        req.scene = SendMessageToWX.Req.WXSceneSession;  // 目前支持会话
        api.sendReq(req);
    }

 

//QQ回调

class MyIUiListener implements IUiListener{

    @Override
    public void onComplete(Object o) {
        T.showShort(mContext,"分享成功");
    }

    @Override
    public void onError(UiError uiError) {
        T.showShort(mContext,"分享失败");
    }

    @Override
    public void onCancel() {
        T.showShort(mContext,"分享取消");
    }
}

 

你可能感兴趣的:(Android)