Um módulo Expo para suporte a APIs Wechat em Android e iOS
Consulte o Wechat nativo
A maioria dos desenvolvedores que usam React Native para construir aplicativos não estão equipados com habilidades de desenvolvimento nativas, sem mencionar a conexão de seus aplicativos com o WeChat.
Especialmente, o WeChat OpenSDK é algo chato por causa de documentos de merda onde muitas APIs não são claras e intuitivas. Para ajudar os desenvolvedores que usam React Native, tentei ao máximo criar esta biblioteca. E espero que você se beneficie disso e fique menos frustrado com o WeChat.
npm install [email protected]
# or
yarn add [email protected]
npm install [email protected]
# or
yarn add [email protected]
Abra app.json
e adicione as seguintes informações:
{
// Add your WeChat app ID
"scheme" : [ "wx123456nxabcdefg" ] ,
"ios" : {
// Add your iOS universal link
// Example "applinks:(google.com)"
"associatedDomains" : [ "applinks:(Universal Link Here)" ]
} ,
// Add Expo Native Wechat plugin
"plugins" : [ "expo-native-wechat" ]
}
Antes de invocar qualquer API, é essencial registrar o Native WeChat invocando registerApp
.
import { registerApp } from "expo-native-wechat" ;
useEffect ( ( ) => {
return registerApp ( "wx964290141ebe9b7b" ) ;
} , [ ] ) ;
Ao invocar registerApp
, haverá um ouvinte para receber eventos do Wechat. registerApp
retorna uma função para remover o ouvinte e nenhum evento será recebido do Wechat.
Agora é a hora de invocar a API. Por exemplo, enviaremos uma solicitação de autenticação ao Wechat e receberemos o código. Você pode usar a API chamada sendAuthRequest
aqui.
import { registerApp , sendAuthRequest } from "expo-native-wechat" ;
import { Button , Text } from "react-native" ;
import { verifyWechatCode } from "@/api/auth/wechat" ;
useEffect ( ( ) => {
registerApp ( "wx964290141ebe9b7b" ) ;
} , [ ] ) ;
const onButtonClicked = async ( ) => {
const {
data : { code } ,
} = await sendAuthRequest ( ) ;
await verifyWechatCode ( code ) ;
} ;
return (
< Button onClick = { onButtonClicked } >
< Text > Send Auth Request </ Text >
</ Button >
) ;
A maioria das APIs no Native WeChat são prometidas. O mesmo acontece com sendAuthRequest
, que retornará uma promessa. Quando o usuário confirma a solicitação no Wechat, a promessa é resolvida como dados com um código. Todas as APIs prometidas retornam um tipo genérico chamado NativeWechatResponse
.
export type NativeWechatResponse < T = Record < string , unknown > > = {
type : string ;
errorCode : number ;
errorStr : string | null ;
data : T ;
} ;
Se você tiver problemas para usar esta biblioteca, não hesite em abrir um problema. Estou sempre aqui para ajudar.