android接入微信sdk,【转载】Android友盟SDK微信授权登录接入

微信授权登录接入需要先到微信开放平台申请好应用的APPID,交纳300大洋费用得到授权登录权限后才能使用,此处不再赘述。

接入的两种方式

-- 微信SDK接入:使用微信官方SDK接入,需要分“获取code票据”和“获取access_token”两步来获得授权关系接口的调用凭证

-- 友盟SDK接入:友盟已集成各种接口接入,直接一个方法搞定

本文记录使用友盟SDK接入微信授权登录中的几处关键代码,使用的是友盟SDK 6.1.1,最新版请到官网下载

最新版与旧版SDK用法有出入,官网文档也不是太完善,本文仅针对6.1.1版本在Eclipse工程接入记录

初始化SDK

最好在Android应用入口处初始化SDK

public class XXApplication extends Application {

@Override

public void onCreate() {

super.onCreate();

UMShareAPI.get(this);

PlatformConfig.setWeixin(WX_APP_ID, WX_APP_SECRET);

}

}

创建WXEntryActivity

在应用包名下创建wxapi包,包内创建WXEntryActivity

例如应用包名为com.test.test,则创建com.test.test.wxapi.WXEntryActivity

public class WXEntryActivity extends WXCallbackActivity implements IWXAPIEventHandler {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

}

}

AndroidManifest声明

在manifest文件上声明回调用到的WXEntryActivity,包名改成自己项目的包名。官网说这里一个字也不能改,试了试好像改一改也没关系的。。

android:name="com.test.test.wxapi.WXEntryActivity"

android:theme="@android:style/Theme.Translucent.NoTitleBar"

android:configChanges="keyboardHidden|orientation|screenSize"

android:exported="true"

android:screenOrientation="portrait" />

发送授权请求

public void requestAuth() {

this.runOnUiThread(new Runnable() {

@Override

public void run() {

UMShareAPI mShareAPI = UMShareAPI.get(this);

mShareAPI.getPlatformInfo(this, SHARE_MEDIA.WEIXIN, umAuthListener);

}

});

}

private UMAuthListener umAuthListener = new UMAuthListener() {

@Override

public void onComplete(SHARE_MEDIA platform, int action, Map data) {

System.out.println("AuthorizeSuccess");

for (String key : data.keySet()) {

System.out.println("Key = " + key);

}

for (String value : data.values()) {

System.out.println("Value = " + value);

}

this.runOnGlThread(new Runnable(){

@Override

public void run(){

//回调Lua

}

})

}

@Override

public void onError(SHARE_MEDIA platform, int action, Throwable t) {

Toast.makeText(this.getApplicationContext(), "Authorizefail", Toast.LENGTH_SHORT).show();

}

@Override

public void onCancel(SHARE_MEDIA platform, int action) {

Toast.makeText(this.getApplicationContext(), "Authorizecancel", Toast.LENGTH_SHORT).show();

}

};

注:

6.1.1版SDK的回调UMAuthListener没有onStart()函数,在后面的版本才有

上面的写法是用Lua调用Java,再回调Lua授权结果,发送请求时运行在Ui线程,回调时运行在Gl线程,如果是普通请求回调直接执行run函数内容即可

关于onActivityResult,官网说要重写,但6.1.1版SDK没有重写也可以成功调用

最后在登录所在的Activity里复写onActivityResult方法,注意不可在fragment中实现,如果在fragment中调用登录,在fragment依赖的Activity中实现,如果不实现onActivityResult方法,会导致登录或回调无法正常进行

onActivityResult代码如下

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值