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"]];

cocos2d-x 用浏览器打开网页,布布扣,bubuko.com

时间: 2024-10-13 22:21:08

cocos2d-x 用浏览器打开网页的相关文章

cocos2d-x调用android内嵌浏览器打开网页

cocos2d-x调用android内嵌浏览器打开网页,可以从入口传入网址,C++调用android 的api即可实现.方法也很简单 1. 修改"cocos2dx\platform\win32"下的CCApplication.h和CCApplication.cpp,添加函数 头文件声明 void openURL(const char* pszUrl); cpp文件实现: void CCApplication::openURL(const char* pszUrl) { ShellExe

如何设置微信点击链接或扫一扫二维码跳转外部浏览器打开网页下载

本文章向大家介绍微信自动跳转浏览器打开APP(APK)下载链接,主要包括微信自动跳转浏览器打开APP(APK)下载链接使用实例.应用技巧.基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下. 操作步骤 月牙跳转是一款基于微信后端开发了一款微信营销下载推广助手,使用了本插件生成的链接,用户在微信任意环境下点击链接或者扫描二维码,可以实现直接跳转手机默认浏览器并打开指定网页. 1.打开 月牙跳转 网址:http://www.aizhuanlove.cn/ 2.准备好我们的推广链

微信内部浏览器打开网页时提示外部浏览器打开升级版探讨-直接跳转默认浏览器打开

在涉及移动端支付的项目时,由于对支付需求的精细化,不仅需要扫码支付,还有唤醒App支付,另外还有在微信.QQ.支付宝内置浏览器给出相应的提示. 好在国内各大巨头公司在开发浏览器的时候都在浏览器标识上加了相应的字符,下面直接贴代码: function is_neizhi() { var ua = navigator.userAgent.toLowerCase(); if (ua.match(/MicroMessenger/i) == "micromessenger") { return

微信浏览器打开网页被拦截了?Mindjump快速解决微信屏蔽网址用户打不开的难题

最近在很多论坛和博客上都能看到有朋友咨询微信跳转手机默认浏览器下载app要怎么实现,其实只要用api接口对链接进行相关的处理即可实现这个功能了.为了解答大家的疑惑,特写这篇文章分享一个我们团队之前用的很稳定很便捷的微信跳转平台,下面是具体的操作步骤. Mindjump使用说明: 用浏览器打开我们需要用到的微信跳转平台Mindjump请添加链接描述网页:http://www.mindjump.cn/ 复制你的推广链接粘贴输入进工具框,点击开始生成 复制新生成的跳转链接和二维码 微信内打开跳转链接或

(转)AppCan中调用系统浏览器打开网页

<!DOCTYPE html> <html> <head> <style>body{ background:#fff; font-size:30px;}</style> <meta charset="utf-8"> <script> function openUrl(url){ if(uexWidgetOne.getPlatform()=='0'){ //IOS设备 uexWidget.loadApp(

基于图像识别测试手机浏览器打开网页首屏时间的方法

本文涉及性能测试技术,特别是涉及一种基于图像识别的测试手机网页首屏时间的方法,它可以应用在手机浏览器页面加载响应时间的的自动化测试或性能检测中.同时可以应用到其他android的apk的响应时间的测试中去 随着智能手机等移动终端的发展,越来越多的用户开始通过手机等设备浏览网页,以获取用户所需的信息. 用户使用手机访问网站是基于手机浏览器所获取的网页实现的.通常情况下,用户访问网站的页面全部加载完毕时,总页面高度可能有一屏到多屏不等,总的页面加载时间要比首屏加载时间长很多,但是首屏加载时间是用户对

webstrom打开通过顶部浏览器打开网页,被跳转到默认主页

重新开始工作啦,希望以后认真一点,并把遇到的问题都记录下来,虽然是小小白,但能无意间帮助到别人就更开心了呀 通过webstrom打开本地的文件时,发现跳转到了默认主页上,吐槽下,有些主页真的超级流氓了,怎么都改不掉 1.可以通过文件->设置->工具->web浏览器(file->Settings>Tools>Web Browsers) 2.把谷歌浏览器的path修改掉 在我的电脑中路径是:C:\Users\Administrator\AppData\Local\Googl

C#调用浏览器打开网页

从注册表中读取默认浏览器可执行文件路径 private void button1_Click(object sender, EventArgs e) { //从注册表中读取默认浏览器可执行文件路径 RegistryKey key = Registry.ClassesRoot.OpenSubKey(@"http\shell\open\command\"); string s = key.GetValue("").ToString(); //s就是你的默认浏览器,不过后

手机应用或浏览器打开网页时图片缩放

原文地址:http://marclee.blog.163.com/blog/static/40317017201392325955480/ 今天调了一下页面,有些有机查看图片始终不能自动缩放,后发现图片必须给定一个100%宽度才能实现. 1,在头加 <meta name="viewport" content="width=device-width, initial-scale=1" /> 2,设置图片的宽度<img src="images