zoukankan      html  css  js  c++  java
  • cocos2d-x 用浏览器打开网页

    转自:http://www.xuebuyuan.com/1396292.htmlhttp://www.cocoachina.com/bbs/read.php?tid=88589

    First!!

    源代码里加入:

    //判断当前是否为Android平台
    #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
        //定义Jni函数信息结构体
        JniMethodInfo minfo;
        bool isHave = JniHelper::getStaticMethodInfo(minfo,"com/xxx/xxx/xxx","openUrl", "(Ljava/lang/String;)V");
        if (isHave)
        {
            minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);
        }
        #endif

    jni的头文件么找一下include进来就好

    这里要注意的就是getStaticMethodInfo这个函数,以下对此函数的介绍转自:http://blog.csdn.net/xiaominghimi/article/details/7602984

    此函数有3个参数:

    第一参数: minfo  ->JniMethodInfo 类型;

    第二个参数:类的路径(我搞的是proj.android/src/xx/xxx/xxx...下面那个,还有这个不需要加.java后缀)

    第三个参数:方法名(第一参数类中的函数)

    第四个参数:(参数)返回类型

    关于第二个和第三个参数都比较容易理解,那么第四个参数需要重点介绍一下;例如你在Java中定义一个如下函数   public void helloJni(){};

    那么getStaticMethodInfo函数第三个参数你应该传入   “()V”  表示此函数无参无返回值!

    如果有这么一个函数: public int helloJni(int _int){return 823};

    那么getStaticMethodInfo函数第三个参数你应该传入   “(I)I”  表示此函数需要传入一个int类型的参数并且返回一个int类型!

    大概说两个童鞋们应该基本理解了,那么下面详细写一些对照表,留给大家对照;

     参数、返回值样式对照表:

    注意:最后两项的那个分号也是要加的!!

    Second!!

    在项目里找到Cocos2dxActivity.java这个东西,如图:

    没标出来,反正应该能找到,就在那个org.cocos2dx.lib里。

    在里面加一个函数:

    //加我
    public static void openUrl(String url)
    {
          Uri uri = Uri.parse(url);
          Intent it = new Intent(Intent.ACTION_VIEW,uri);
          sContext.startActivity(it);
    } 

    上面的sContext是在Cocos2dxActivity的onCreate函数里生成后被赋值为了this,不同版本可能叫法不一样,看着改改就好了。

    //就是这个函数
    protected void onCreate(final Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            sContext = this;
            this.mHandler = new Cocos2dxHandler(this);
            this.init();
            Cocos2dxHelper.init(this, this);
    }
    

    其实把openUrl加在自己项目的那个java里也是可以的,把那个sContext改成非private的就行。直接用this的话不行,函数是static的。那函数改成非static行不行呢?最上面那个函数是getStaitcMethodInfo,估计是不行,但我懒得试……

    IOS:

    [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"http://www.baidu.com"]];

  • 相关阅读:
    linux网络编程之扫盲
    当lov变化时得到lov变化的值
    动态设置OAMessageChoiceBean值
    RSA host key for HOST has changed and you have requested strict checking
    64位整数的编译错误
    CSS让内容水平居中(固定宽度)
    如何计算亮度值
    adb新参数支持Android 2.2安装到SD卡上
    NSDateFormatter formatting
    Win7系统下Safari不能打开网页的解决方法
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/3900302.html
Copyright © 2011-2022 走看看