zoukankan      html  css  js  c++  java
  • 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);
        }
  • 相关阅读:
    HTML5中input输入框的种类
    perl mojo 编码
    perl encode_utf8 decode_utf8
    perl mojo use utf8 和no utf8
    perl unload oracle gbk
    perl unload Oracle utf8 数据库
    perl socket 返回发送成功数据的长度
    perl socket 客户端发送消息
    验证码识别(Tess4J初体验)
    Uploadify 3.2 参数属性、事件、方法函数详解
  • 原文地址:https://www.cnblogs.com/youbii/p/3305590.html
Copyright © 2011-2022 走看看