Red de conocimiento informático - Material del sitio web - Cómo integrar la versión de Android de WeChat SDK en Cocos2d-x

Cómo integrar la versión de Android de WeChat SDK en Cocos2d-x

1. Si WeChat SDK se puede integrar en Cocos2d-x, para que el juego se pueda compartir con amigos, será muy beneficioso para la promoción del juego. Bueno, este artículo te enseñará paso a paso cómo integrar WeChat SDK en Cocos2d-x.

Primero echemos un vistazo al efecto de compartir en Momentos, haga clic en el enlace de salto:

Compartir en Momentos, haga clic en el enlace de salto:

2. Entorno

Sistema operativo: Mac OSX

IDE: Xcode v5.11 y Eclipse ADT v22.3

SDK de Android: 4.3

Adndroid NDK: r9d

Cocos2d-x 3.2release

3.Crear proyecto Cocos2d-x No lo presentaré en detalle aquí, hay mucha información en Internet. No entraré en detalles aquí, hay mucha información en línea. Lo haré como estoy acostumbrado. (1) Cree un proyecto Cocos2dxWechat en la línea de comando

$ cocos new -p com.fusijie.cocos2dxwechat -l cpp -d .Cocos2dxWechat

(2) Compilación cruzada para generarlo file

$ cd Cocos2dxWechat/proj.android/

$ ./build_native.py

(3) Importar Eclipse para generar APK Importar el proyecto libcocos2dx y. Cocos2dxWechat en el proyecto Eclipse. Ejecute Cocos2dxWechat.apk con éxito en un dispositivo real. 4. Solicite la creación de una aplicación WeChat. Este paso implica principalmente solicitar la creación de una aplicación móvil en la plataforma abierta WeChat y obtener el AppID. La URL de la plataforma abierta WeChat es: / (1) Registre una cuenta, ingrese al centro de administración y haga clic para crear una aplicación móvil. (2) El primer paso es completar el nombre de la aplicación, descripción, ícono, etc. Como se muestra a continuación.

(3) Complete el sitio web oficial de la aplicación, verifique la aplicación de Android, complete la firma, el nombre del paquete de software, etc. Como se muestra a continuación.

Nota: Aquí se debe prestar especial atención a la firma de la solicitud. El tercer paso es ejecutar Cocos2dxWechat.apk con éxito en una máquina real. Necesitamos descargar un software de generación de firmas GenSignature de la plataforma abierta WeChat

Después de instalar la generación de firmas, abra el software e ingrese el paquete del juego. nombre para obtenerlo.

La firma aquí está asociada con el nombre del paquete y el almacén de claves del juego. Si modifica el nombre del paquete o cambia el almacén de claves, la información en el Centro de administración de plataforma abierta de WeChat debe actualizarse simultáneamente para evitar fallas. Este ejemplo utiliza una firma de depuración. Después de completar el trabajo anterior, envíelo para su revisión. Se dice que se necesitan 7 días, pero de hecho, normalmente se necesitan de 1 a 2 días para pasar la revisión. 5. Integre el SDK de WeChat. Ahora que hemos sentado las bases, entremos en el tema aquí. Para llamar al SDK de Android WeChat en Cocos2d-x, Jni no puede escapar. Esta es solo una demostración de cómo compartir en Moments y compartir en WeChat SDK. También tiene muchas funciones avanzadas, como pago, cobro y otras interfaces. Si es necesario, puede consultar su propia documentación (desarrollo de aplicaciones móviles) para el desarrollo. .

Explique principalmente 3 partes:

Descarga del SDK de WeChat, importación del paquete jar

Código de Android

Código C

(1) Descargar WeChat SDK

(2) Abra el Android_SDK.zip descargado, descomprímalo y coloque la biblioteca en el directorio libammsdk.jar en el directorio libs del proyecto Cocos2dxWechat.

(3) Haga clic derecho en el proyecto y seleccione "Configurar ruta de compilación ..." en "Ruta de compilación". Seleccione la pestaña Bibliotecas y agregue Jars... para importar el archivo libammsdk.jar en el directorio libs del proyecto.

(4) Agregar variables miembro en AppActivity

private static final String APP_ID = "wx81115d2aa55710fa" //AppID, obtenido del paso 4

private static IWXAPI api; //Interfaz API de WeChat

instancia privada estática de AppActivity; // Instancia estática de clase para facilitar la llamada a funciones estáticas en el futuro

(5) Regístrese en WeChat, abra AppActivity y llame a regToWX() en onCreate() para registrarse con WeChat

protected void onCreate(Bundle saveInstanceState) {

// TODO genera automáticamente resguardos de métodos

super. AppActivity.onCreate(Bundle saveInstanceState) {

// TODO genera automáticamente resguardos de métodos. onCreate( saveInstanceState);

instancia = esto

regToWX();

}

privado void regToWX(){

api = WXAPIFactory.createWXAPI(this, APP_ID, true);

api.registerApp(APP_ID);

}

(6) Dado que el ejemplo de uso compartido utilizado aquí pasa por un ícono, se requiere una clase Util de análisis de mapa de bits adicional, que se puede descargar desde la demostración oficial del SDK de WeChat. Esta clase se puede descargar desde la demostración oficial del SDK de WeChat o desde este ejemplo (las primeras versiones de esta clase se han integrado en el SDK de WeChat). El ícono se coloca en el directorio dibujable debajo del directorio res, pero soy vago, así que uso el ícono de la aplicación directamente aquí.

(7) Compartir con amigos

public static void sendMsgToFriend(){

if(api.openWXApp())

{

WXWebpageObject página web = nuevo WXWebpageObject();

webpage.webpageUrl = "";

WXMediaMessage msg = nuevo WXMediaMessage(página web);

msg.Req( ) ;

req.transaction = buildTransaction("página web");

req.message = msg

req.scene = SendMessageToWX.Req.WXSceneSession; /p>

api.sendReq(req);

}

else

{

Toast.makeText(instancia, "WeChat no instalado", Toast.LENGTH_SHORT).show();

}

}

(8) Compartir en Momentos

público estático vacío sendMsgToTimeLine(){

if(api. openWXApp())

{

if(api.getWXAppSupportAPI() gt;= 0x21020001)

{

WXWebpageObject página web = new WXWebpageObject();

webpage.message = msg;

req .scene = SendMessageToWX.Req.WXSceneTimeline;

api.sendReq(req);

}

else{

Toast.makeText (instancia , "La versión de WeChat es demasiado baja", Toast.LENGTH_SHORT).show();

}

}

else

{

Toast.makeText(instancia, "Sin versión de WeChat", Toast.LENGTH_SHORT).show();

}

}

Donde se usa buildTransaction() para generar un identificador de sesión único.

cadena estática privada buildTransaction(tipo de cadena final) {

return (tipo == null) ?String.valueOf(System.currentTimeMillis()): tipo System.currentTimeMillis();

}

El código no es difícil, por lo que no se explicará línea por línea. Puede consultar la documentación del SDK.

(9) Llame a JNI para crear una nueva clase WeixinShare en el directorio Clases, que contiene principalmente dos funciones estáticas:

void WeiXinShare::sendToFriend()

{

#if (CC_TARGET_PLATFORM == CC_ PLATFORM_ANDROID) // Determinar si la plataforma actual es Android

JniMethodInfo minfo;

bool isHave = JniHelper::getStaticMethodInfo(minfo, "org/ cocos2dx /cpp/AppActivity", "sendMsgToFriend", "()V");

if(!isHave) {

log("jni: sendMsgToFriend es nulo");

if(!isHave) {

log("jni: sendMsgToFriend es nulo");

p>

}else{

/ / Llama a esta función

minfo.env-gt; CallStaticVoidMethod(minfo.classID, minfo.methodID);

}

#endif

}

void WeiXinShare: .sendToTimeLine()

{

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //Determinar si la plataforma actual es Android

JniMethodInfo minfo;

bool isHave = JniHelper::getStaticMethodInfo(minfo, "org/cocos2dx/cpp/AppActivity" , "sendMsgToTimeLine", "()V");

if(!isHave) {

log("jni: sendMsgToTimeLine is null");

}else{

//Llamar a esta función

minfo.env-gt; CallStaticVoidMethod(minfo.classID, minfo.methodID);

}

#endif

}

(10) Cocos2d-x es más sencillo de usar, simplemente incluya la clase WeiXinShare y llame a estas dos funciones estáticas.

void HelloWorld::menuCloseCallback(Ref* pSender)

{

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)

// WeiXinShare ::sendToFriend();

WeiXinShare::sendToTimeLine();

#endif

}

(11) Modificaciones de Android. mk Finalmente, no olvides modificar el archivo Android.mk.

.

Copiar código

LOCAL_SRC_FILES:= hellocpp/main.cpp (

.../.../Classes/AppDelegate.cpp \

.../.../Classes/HelloWorldScene.cpp \

.../.../Classes/WeiXinShare.cpp

(12) Compilación cruzada y empaquetarlo en un APK 6. Resumen Este artículo está escrito con más detalle, pero también hay algunas cosas que se han ignorado, como cómo recibir solicitudes de WeChat e instrucciones de valor de retorno y cómo ofuscarlas, etc. Un tutorial para principiantes para aquellos que no están familiarizados con la integración del SDK de Android de terceros para llamadas jni. Este artículo solo explica la integración de algunas funciones del SDK de WeChat, pero el principio es simple: cómo integrar el uso compartido de Weibo y cómo integrarlo. publicidad de terceros, etc., se pueden utilizar métodos similares.