android微信分享要注意的地方

最近在做android端分享的功能,在微信开放平台查看了下官网上的开发文档,一步一步的按文档上的步骤来:

1、申请你的AppID

2、下载开发工具包

3、搭建开发环境,引入libammsdk.jar文件

4、写发送请求代码(注意:你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类

一切都挺顺利的,调试了也能正常发送分享。但是当发布后再安装到手机上,点击分享的时候就没有任何反应,也没提示。

最后在网上查到说应用包名、签名、APP_ID要对应,想想问题应该出现在签名上,就安装了发布后的apk,再用genSignature.apk获取了一下签名

发现和原来的不一样。于是用这个签名又去官网登记了一个应用,获取新的appid,appkey。发布的时候使用刚登记的appid,安装后微信分享没问题了,

大功告成。

所以做微信分享的时候要申请两个应用,一个用做开发,一个用在发布正式上。

分享一下代码(替换自己的appid)

public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
    private IWXAPI api;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LogUtil.d("微信", "微信响应页面", true);
        api = WXAPIFactory.createWXAPI(this, AppID, false);
        api.registerApp(AppID);
        api.handleIntent(getIntent(), this);
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);

        setIntent(intent);
        api.handleIntent(intent, this);
    }

    public void onReq(BaseReq arg0) {
        LogUtil.d("微信", "BaseReq:" + arg0.getType(), true);
        switch (arg0.getType()) {
        case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
            LogUtil.d("", "ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX", true);
            break;
        case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
            LogUtil.d("", "ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX", true);
            break;
        default:
            break;
        }
        finish();
    }

    public void onResp(BaseResp arg0) {
        LogUtil.d("微信", "BaseResp:" + arg0.errCode, true);
        String result = "";
        switch (arg0.errCode) {
        case BaseResp.ErrCode.ERR_OK:
            result = "亲,分享成功了";
            break;
        case BaseResp.ErrCode.ERR_USER_CANCEL:
            result = "取消分享";
            break;
        case BaseResp.ErrCode.ERR_AUTH_DENIED:
            result = "认证失败";
            break;
        default:
            result = "errcode_unknown";
            break;
        }

        Toast.makeText(this, result, Toast.LENGTH_LONG).show();
        finish();
    }

}

分享方法

IWXAPI wxApi = WXAPIFactory.createWXAPI(this, AppID);
wxApi.registerApp(AppID);
public void WxSendRequest(int towhere, String sharestr) {
        LogUtil.e("", "博饼微信分享", true);
        WXTextObject txtObject = new WXTextObject();
        txtObject.text = sharestr;
        WXMediaMessage msg = new WXMediaMessage(txtObject);
        msg.title = mBoCake.getTitle();
        msg.description = mBoCake.getTitle();

        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = String.valueOf(System.currentTimeMillis());
        req.message = msg;

        if (towhere == 0) {
            req.scene = SendMessageToWX.Req.WXSceneSession;//分享给好友
        } else {
            req.scene = SendMessageToWX.Req.WXSceneTimeline;//朋友圈
        }
        wxApi.sendReq(req);
    }
原文地址:https://www.cnblogs.com/youbii/p/3305590.html