Android——微信登录、分享

本文详细介绍了如何在Android应用中集成微信登录和分享功能。首先,你需要在微信开发者平台注册并获得appId。接着,引入libammsdk.jar库,并在Manifest中配置相应的Activity。回调Activity需位于特定包名的wxapi子包下,命名为WXEntryActivity并实现IWXAPIEventHandler接口。接下来,通过授权请求获取access_token和openid。然后,利用这些信息进行微信登录和分享操作,包括文字、图片、音乐、视频和网页的分享。同时,可以获取微信用户信息。务必确保应用签名与微信开放平台配置一致。本文适用于纯Android和混合开发项目,如有问题,欢迎留言交流。
摘要由CSDN通过智能技术生成

写在前面的话
应用要接入微信登录,分享,需要在微信的开发者平台上进行提交应用,并且审核通过,应用已经获取到appId。
相关jar包下载地址:http://download.csdn.net/detail/sapce_fish/9571142
也可到官网下载:https://open.weixin.qq.com
libammsdk.jar 引进自己的项目中

第一步:在Manifest中进行如下配置:

<!-- 微信登录相关权限  开始 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 微信登录相关权限  结束 -->

    <!-- 微信登录相关配置 开始 -->
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="orientation|keyboardHidden"
            android:exported="true"
            android:launchMode="singleTop"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.VIEW"></action>

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!-- 微信登录相关配置 结束 -->


第二步:写微信回调,这个需要特别注意,因为微信对这个回调类有特殊的要求

注意点:


1.位置:回调Activity的位置在包名的wxapi下。例如:包名为aaa.bbb.ccc 那么回调Activity的位置则应在aaa.bbb.ccc.wxapi下


2.Activity名:回调Activity名字必须为WXEntryActivity。此Activity继承自Activity,这也跟上面在Manifest文件中配置的那个Activity对应上了。


3.Activity实现IWXAPIEventHandler接口。

微信回调Activity(这个回调Activity比较容易写错,我就全部贴出来,如有需要可以参考)

public class WXEntryActivity extends Activity implements IWXAPIEventHandler
{
   
    private IWXAPI api;
    /** 标记是否有code,默认为有,当调用登录微信授权方法后此值会被设置成false*/
    public static boolean mHaveCode = true;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        api = WXAPIFactory.createWXAPI(this, AppConstants.APP_ID_WX, false);
        api.handleIntent(getIntent(), this);
    }


    /**
     * 微信发送的请求将回调到onReq方法
     */
    @Override
    public void onReq(BaseReq req) {
        Log.d("space", req.toString());
        finish();
    }

    /**
     * 发送到微信请求的响应结果将回调到onResp方法
     */
    @Override
    public void onResp(BaseResp resp) {
        Log.i("space",resp.toString());
        String result = "";
        if (resp != null && !mHaveCode && ((SendAuth.Resp) resp).code != null) {
//          mResp = resp;
            mHaveCode = true;
            //设置好微信code
            getWXCode(resp);
        }
        Log.i("space", "WXEntryActivity resp.errCode="+resp.errCode);
        switch(resp.errCode) {
            case BaseResp.ErrCode.ERR_OK:
                result ="成功";
                JsCallbackExecutor.onSocialWXOptionResult(resp.errCode, "code is weixin sdk back ,ref status" + result);

                finish();
                break;
            case BaseResp.ErrCode.ERR_USER_CANCEL:
                result = "取消";
                JsCallbackExecutor.onSocialWXOptionResult(resp.errCode, "code is weixin sdk back ,ref status" + result);
                Log.i("space", result);
                finish();
                
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值