Android之微信分享

Android之微信分享

现在的项目中要用到微信分享,弄了两天才弄好,开始的时候是下载微信的sdk和demo,将demo放到eclipse上跑起来后发现不能分享,都是一闪就结束程序了,后来发现我们要将demo中的APPID和报名替换成我们自己申请应用时的包名和APPID,之后就可以实现分享功能了。

1.注册微信的移动应用

   微信注册地址: 点击打开链接

    Android之微信分享

点击图中的创建移动应用,在接下来的第二页中如下:

Android之微信分享

在应用签名和应用包名这两输入框要根据自己的实际填写,千万别瞎填。

应用签名:我们一般开发程序是用的都是debug.keystore,但是在我们打包程序发布的时候用的是我们正式的XXX.keystore或者是XXX.jks,eclipse用的是.keystore,as用的是.jks

1.在微信开发里有一个资源下载,从哪可以下载一个应用签名获取APK,将他下载到手机,同时将我们的程序安装到手机中,使用这个APK就可以获取到签名,但是一般这个签  名是debug的,不可以正式打包发布时使用,正式打包时,可以用我们自己的keystore获取签名。

2.包名可以从manafest.xml文件中获取;

2.代码简单分析

1.文字分享:

 public void shareText2WX(String str, int flag) {
        WXTextObject textObject = new WXTextObject();
        textObject.text = str;
        WXMediaMessage wxMediaMessage = new WXMediaMessage();
        wxMediaMessage.mediaObject = textObject;
        wxMediaMessage.description = str;
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("text");
        req.message = wxMediaMessage;
        switch (flag) {
            case 1:
                req.scene = SendMessageToWX.Req.WXSceneSession; // 好友
                break;
            case 2:
                req.scene = SendMessageToWX.Req.WXSceneTimeline; // 朋友圈
                break;
        }
        iwxapi.sendReq(req);
    }

这段代码是从微信分享demo中直接拿出来用的,他只是文字分享,其他的如:网页分享,图片分享,音乐分享,视频分享,和上边相同,直接拿出来,稍微改改就可以了。


2.分享回调

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

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        api = WXAPIFactory.createWXAPI(this,
                Constances.WX_APPKEY, false);
        api.handleIntent(getIntent(), this);

    }

    @Override
    public void onReq(BaseReq arg0) {

    }

    @Override
    public void onResp(BaseResp resp) {
        int result = 0;

        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(WXEntryActivity.this, result, Toast.LENGTH_LONG).show();

        // TODO 微信分享 成功之后调用接口
        this.finish();
    }
}
在我们的包里边,建一个包名为wxapi的包,在这个包里边建一个WXEntryActivity的类继承activity,实现IWXAPIEventHandler接口,

在manafest.xml里注册Activity:

<activity
            android:name=".wxapi.WXEntryActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Translucent" />

3.好了,到现在微信分享就可以了

Android之微信分享

上一篇:【微信要跪】如何满足苹果要求 iOS 应用完全支持 IPv6-ONLY 网络


下一篇:微信公众平台开发文摘