在 Cocos2d-x 中添加本身的微博連接

配置:OS X 10.10 + Xcode 6.0 + Cocos2d-x-3.2php

1、Android 端代碼

一、在 Cocos2dxActivity.java 中添加openUrl函數並導入響應包文件。html

import android.net.Uri;  // 須要導入的包

public static void openUrl()
{
      Uri uri = Uri.parse("http://weibo.com/2282161187/profile?topnav=1&wvr=6");
      Intent it = new Intent(Intent.ACTION_VIEW,uri);
      this.startActivity(it);
}

附註:java

  • Cocos2dxActivity.java的具體所在路徑:.../cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.javaandroid

  • 上面代碼中的 this 須要作替換,不然會報錯沒法從靜態上下文中引用非靜態 變量 this,在 Cocos2d-x 3.2 版本中替換爲sContext。對於其餘版本,給你們提供個線索,private static Cocos2dxActivity sContext = null;ios

二、在須要打開連接的位置添加以下代碼便可實現跳轉函數

// 添加頭文件
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include "platform/android/jni/JniHelper.h"
#endif
// 跳轉代碼
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
    //定義Jni函數信息結構體
    JniMethodInfo minfo;
    bool isHave = JniHelper::getStaticMethodInfo(minfo,"org/cocos2dx/lib/Cocos2dxActivity","openUrl", "()V");
    if (isHave)
    {
        minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);
    }
#endif

附註:this

頭文件中平臺宏的緣由是JniHelper.h中用到了Android平臺相關的頭文件,若是在 Xcode 下編譯會出現錯誤:"jni.h" file not found。(別問我怎麼知道的。。)url

2、iOS端代碼

一、直接添加以下代碼.net

[[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"http://weibo.com/2282161187/profile?topnav=1&wvr=6"]];

二、把文件改成.mm格式。code

參考連接

cocos2d-x如何打開一個url?(在討論中介紹了打開url的方法以及)
Xcode 下 jni.h file not found 求教啊(關於"jni.h" file not found問題的解決)

相關文章
相關標籤/搜索