100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > php android 微信登录 Android_Android 实现微信登录详解 前言分享到微信朋友圈 - phpStudy...

php android 微信登录 Android_Android 实现微信登录详解 前言分享到微信朋友圈 - phpStudy...

时间:2020-12-17 08:30:43

相关推荐

php android 微信登录 Android_Android 实现微信登录详解 前言分享到微信朋友圈 - phpStudy...

Android 实现微信登录详解

前言

分享到微信朋友圈的功能早已经有了,但微信登录推出并不久,文档写的也并不是很清楚,这里记录分享一下。

正文

一、准备

注册、认证步骤自己来。微信开放平台:https://open.

二、 代码

2.1唤起微信登录

参考官网文档:资源中心/移动应用开放/接入指南/Android接入指南

private IWXAPI mWeixinAPI;

private void loginWithWeixin() {

if (mWeixinAPI == null) {

mWeixinAPI = WXAPIFactory.createWXAPI(this, WEIXIN_APP_ID, false);

}

if (!mWeixinAPI.isWXAppInstalled()) {

//提醒用户没有按照微信

return;

}

mWeixinAPI.registerApp(WEIXIN_APP_ID);

SendAuth.Req req = new SendAuth.Req();

req.scope = WEIXIN_SCOPE;

req.state = WEIXIN_STATE;

mWeixinAPI.sendReq(req);

}

WEXIN_SCOPE:这里填的snsapi_userinfo,用snsapi_base提示没权限。

WEIXIN_STATE:用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验。

不出意外就能唤起微信登录了。

2.2接收微信的请求及返回值

在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,参考文档在AndroidManifest.xml注册Activity。

public class WXEntryActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

handleIntent(getIntent());

}

@Override

protected void onNewIntent(Intent intent) {

super.onNewIntent(intent);

handleIntent(intent);

}

private void handleIntent(Intent intent) {

SendAuth.Resp resp = new SendAuth.Resp(intent.getExtras());

if (resp.errCode == BaseResp.ErrCode.ERR_OK) {

//用户同意

}

}

}

注意:这里和微信的例子写的有点不一样,不过结果是一样的,这个能取到code等信息,测试返回数据如下:

E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_state xxx

E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_token xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

E/WXEntryActivity(14288): onCreate...key:_mmessage_appPackage com.tencent.mm

E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_transaction null

E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_lang zh_CN

E/WXEntryActivity(14288): onCreate...key:_wxapi_command_type 1

E/WXEntryActivity(14288): onCreate...key:_mmessage_content null

E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_country null

E/WXEntryActivity(14288): onCreate...key:_mmessage_checksum [B@426358e8

E/WXEntryActivity(14288): onCreate...key:wx_token_key com.tencent.mm.openapi.token

E/WXEntryActivity(14288): onCreate...key:_wxapi_sendauth_resp_url xxxxxxxxxxx

E/WXEntryActivity(14288): onCreate...key:_mmessage_sdkVersion 570490883

E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_errcode 0

E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_errstr null

E/WXEntryActivity(14288): onCreate...key:_wxapi_baseresp_openId null

xxx部分的内容我已经隐掉了,拿到code就能拿到access——token了,后续依据文档调用即可。

这里你可以把WXEntryActivity的theme弄成透明的,然后再弹起来一个ProgressDialog进行后续的操作(提交你自己的服务器),就能和现有的界面完全融合了。

三、注意:

3.1获取签名必须用release包。(所以你会发现微信、微博SDK取得值是一样,所以如果已经有了微博的签名可以直接拷贝到微信使用)

以上对Android 微信登录分享朋友圈的功能,有需要的朋友可以看下。相关阅读:

Mysql的游标的定义使用及关闭深入分析

MySQL函数讲解(MySQL函数大全)

使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享

Linux系统如何安装mongodb数据库Mongo扩展

Win8.1系统打开应用商店提示错误代码0x80080005的解决方法

Win8系统怎么把固定在开始屏幕上的图标重命名?

MAC怎么设置默认浏览器有哪些方法

C#根据年月日计算星期几的函数

C#动态生成按钮及定义按钮事件的方法

centos中netspeeder网络加速/优化器的安装方法

MySQL 主键与索引的联系与区别分析

Android实现图片缓存与异步加载

php操作xml入门之xml标签的属性分析

Win 10系统忘记PIN码怎么办?Win 10系统忘记PIN码的解决办法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。