【cocos2dx】用外部浏览器打开url的方法

由于公司要做类似内嵌浏览器的功能,在网上找了下,几乎都只是调用外部浏览器来实现,就先把我找到的关于这方面的只是总结一下。(原文转自:http://www.cocos2d-x.org/boards/6/topics/11290


1.修改“cocos2dx\platform\win32”下的CCApplication.h和CCApplication.cpp,添加

  // CCApplication.h
  void openURL(const char* pszUrl);

// CCApplication.cpp
void CCApplication::openURL(const char* pszUrl)
{
    ShellExecuteA(NULL, "open", pszUrl, NULL, NULL, SW_SHOWNORMAL);
}


2.修改“cocos2dx\platform\android”下的CCApplication.h和CCApplication.cpp,添加

//CCApplication.h
void openURL(const char* pszUrl);
//CCApplication.cpp
void CCApplication::openURL(const char* pszUrl)
{
    JniMethodInfo minfo;
        
    if(JniHelper::getStaticMethodInfo(minfo, 
        "org/cocos2dx/application/ApplicationDemo", 
        "openURL", 
        "(Ljava/lang/String;)V"))
    {
        jstring StringArg1 = minfo.env->NewStringUTF(pszUrl);
        minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID, StringArg1);
        minfo.env->DeleteLocalRef(StringArg1);
        minfo.env->DeleteLocalRef(minfo.classID);
    }
}



3.修改“cocos2dx\platform\android\java\src\org\cocos2dx\lib”下的Cocos2dxActivity.java,添加如下语句:


private static Activity me = null;

protected void onCreate(final Bundle savedInstanceState) {
    ...
    me = this;
    ...
}

public static void openURL(String url) 
{ 
      Intent i = new Intent(Intent.ACTION_VIEW);  
      i.setData(Uri.parse(url));
      me.startActivity(i);
}


4.修改“\cocos2dx\platform\ios\”下的CCApplication.h和CCApplication.mm,添加如下语句:

// CCApplication.h
 void openURL(const char* pszUrl);

// CCApplication.mm
void CCApplication::openURL(const char* pszUrl)
{
    [[UIApplication sharedApplication] openURL:pszUrl];
}



5.调用:

在你的代码,只要调用如下语句就可以用内置浏览器打开url了。

// 在你的代码中添加
CCApplication::shareApplication()->openURL("http://www.baidu.com");



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值