簡體   English   中英

Cocos2d-x在Android上啟動URL

[英]Cocos2d-x Launching a URL on Android

我想從我的游戲中打開由cocos2dx 2.2.2創建的URL,所以任何幫助

如果要打開瀏覽器應用程序,則應使用Java中的Intent系統。 要從C ++調用Java代碼,您應該使用JNI

您可以創建方法,以在cocos2d-x的Java代碼中打開URL。 這是最簡單的方法。

  1. 查找org.cocos2dx.lib.Cocos2dxGLSurfaceView Java類(位置: cocos2d / platform / android / java
  2. 將方法添加到此類

     public static void openWebURL( String inURL ) { if (mCocos2dxGLSurfaceView != null) { Intent browse = new Intent( Intent.ACTION_VIEW , Uri.parse( inURL ) ); browse.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mCocos2dxGLSurfaceView.getContext().startActivity( browse ); } } 
  3. 在C ++源文件中包含JniHelper

     #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) #include "JniHelper.h" #endif 
  4. 添加代碼,將Java方法調用到正確的位置

     #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) JniMethodInfo t; if (JniHelper::getStaticMethodInfo(t, "org/cocos2dx/lib/Cocos2dxGLSurfaceView", "openWebURL", "(Ljava/lang/String;)V")) { jstring stringArg = t.env->NewStringUTF(yourWebUrl); t.env->CallStaticIntMethod(t.classID, t.methodID, stringArg); t.env->DeleteLocalRef(stringArg1); t.env->DeleteLocalRef(t.classID); } #endif 

更正確的方法是在基本的Activity類(擴展Cocos2dxActivity )中定義Java方法。 您應該處理應用程序生命周期,以在Java代碼中存儲對活動的正確靜態引用,或在C ++代碼中存儲對活動對象的本地引用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM