zoukankan      html  css  js  c++  java
  • 在 Cocos2d-x 中添加自己的微博链接

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

    一、Android 端代码

    1、在 Cocos2dxActivity.java 中添加openUrl函数并导入响应包文件。

    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);
    } 
    

    附注:

    • Cocos2dxActivity.java的具体所在路径:.../cocos2d/cocos/platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java

    • 上面代码中的 this 需要做替换,否则会报错无法从静态上下文中引用非静态 变量 this,在 Cocos2d-x 3.2 版本中替换为sContext。对于其他版本,给大家提供个线索,private static Cocos2dxActivity sContext = null;

    2、在需要打开链接的位置添加如下代码即可实现跳转

    // 添加头文件
    #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
    

    附注:

    头文件中平台宏的原因是JniHelper.h中用到了Android平台相关的头文件,如果在 Xcode 下编译会出现错误:"jni.h" file not found。(别问我怎么知道的。。)

    二、iOS端代码

    1、直接添加如下代码

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

    2、把文件改为.mm格式。

    参考链接

    cocos2d-x如何打开一个url?(在讨论中介绍了打开url的方法以及)
    Xcode 下 jni.h file not found 求教啊 (关于"jni.h" file not found问题的解决)

  • 相关阅读:
    ubuntu 1510
    创业者的困境
    创业者的窘境
    (转)Ubuntu 16.04下搭建Web服务器(MySQL+PHP+Apache)
    ESP8266的smartconfig过程(使用esptouch)
    Virtualbox下ubuntu识别USB设备
    红外人体检测
    树莓派跑讯飞语音识别(2麦阵列)
    R16平台中断
    语音识别下的智能家居
  • 原文地址:https://www.cnblogs.com/tangyikejun/p/4347241.html
Copyright © 2011-2022 走看看