项目中难免会用到第三方登录和分享,本项目中微信登录使用的第三方组件:# react-native-wechat

使用

yarn add react-native-wechatreact-native link react-native-wechat

在包名下新建wxapi文件夹,文件夹下新建文件WXEntryActivity.java

package com.xxx.wxapi;import android.app.Activity;import android.os.Bundle;import com.theweflex.react.WeChatModule;public class WXEntryActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        WeChatModule.handleIntent(getIntent());        finish();    }}

授权登录

首先注册

WeChat.registerApp(WechatAppID)

授权登录

WeChat.sendAuthRequest('snsapi_userinfo', 'ares')        .then((response) => {            console.log('-------------------- get wechat data is:', response)            getWechatOpenId(response.code)        })        .catch((error) => {            let errorCode = Number(error.code);            if (errorCode === -2) {                dispatch(showDropdownAlert('error', '提示', '已取消授权登录')) // errorCode = -2 表示用户主动取消的情况,下同            } else {                dispatch(showDropdownAlert('error', '提示', WechatAuthFailed)) // errorCode = -2 表示用户主动取消的情况,下同            }        })

注意问题

  • 打包使用签名文件keystore文件的签名要和微信开发平台中填写的一一致
  • WXEntryActivity.java 中的package com.xxx.wxapi; 包名必须和微信开发平台中填写的包名一直,不然就会出现点击授权登录,回调没有反应的问题,可以解决这个问题:https://github.com/yorkie/rea...