【Android】微信SDK分享需要注意的

微信分享功能网上有许多实例,可以参考也可以直接使用。这里记录几个要点之外容易被忽视的地方。

1.

public class WXEntryActivity extends AppCompatActivity implements IWXAPIEventHandler{
    ...
}

回调用的Activity WXEntryActivity名称固定 必需继承IWXAPIEventHandler

2.

@Override
    public void onResp(BaseResp resp) {
        int result;
        switch (resp.errCode) {
            case BaseResp.ErrCode.ERR_OK:
                result = R.string.errcode_success;
                break;
            case BaseResp.ErrCode.ERR_USER_CANCEL:
                result = R.string.errcode_cancel;
                break;
            case BaseResp.ErrCode.ERR_AUTH_DENIED:
                result = R.string.errcode_deny;
                break;
            default:
                result = R.string.errcode_unknown;
                break;
        }
        Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();

        //返回APP
        backAPP();
        finish();

    } 

返回APP可以通过Intent跳转,一定记得要finish()

3.

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        api.handleIntent(intent, this);
    }

onNewIntent加上

4.

    //获取图片
    private void GetBitmapByImgUrl(final String sImageUrl) {
        new Thread(new Runnable() {
            public void run()
            {
                try{
                    byte[] data = ImageUtil.getImage(sImageUrl);
                    Bitmap bmp = null;
                    if (data != null) {
                        bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
                    }
                    //如果获取失败 用logo
                    if(bmp==null){
                        bmp = SetBitmapLocal();
                    }

                    Message wxmsg = new Message();
                    wxmsg.what = 10;
                    wxmsg.obj = bmp;
                    wxHandler.sendMessage(wxmsg);
                }catch(Exception e){
                    e.printStackTrace();
                }
            }
        }).start();
    }

    public Handler wxHandler=new Handler(){
        @Override
        public void handleMessage(Message wxmsg) {
            super.handleMessage(wxmsg);
            switch (wxmsg.what) {
                case 10:
                    _WxShareModel.SetbmpImage(Bitmap.createScaledBitmap((Bitmap) wxmsg.obj);

                    //分享

                    break;
            }
        }
    };

如果图片是从网络获取的 注意图片大小限制 32k 120x120

5.

        <activity
            android:name=".WXEntryActivity"
            android:launchMode="singleTask"
            android:exported="true"
            android:label="@string/app_name" />

注意设置为singleTask

6.如果分享过程中出现黑屏闪过 建议设置涉及到的Activity背景透明

7.

api.getWXAppSupportAPI()

如果不明原因分享失败,建议检查一下API支持版本

8.

    public interface ErrCode {
        int ERR_OK = 0;
        int ERR_COMM = -1;
        int ERR_USER_CANCEL = -2;
        int ERR_SENT_FAILED = -3;
        int ERR_AUTH_DENIED = -4;
        int ERR_UNSUPPORT = -5;
    }

回调的错误代码,如果为-6检查一下签名是否有误。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值