[转]cocos2dx中用外部浏览器打开url

来源:互联网 发布:debug意思网络用语 编辑:程序博客网 时间:2024/05/29 17:40

FOR WIN32

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


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


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



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


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


//CCApplication.cpp
void Application::openURL(const char* pszUrl)
{
    JniMethodInfo minfo;
        
    if(JniHelper::getStaticMethodInfo(minfo, 
        "org/cocos2dx/lib/Cocos2dxActivity", 
        "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);
}


FOR IOS

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

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


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


5.调用:
在你的代码 ,只要调用如下语句就可以用内置浏览器打开url了。
// 在你的代码中添加
Application::shareApplication()->openURL("http://www.baidu.com");
0 0
原创粉丝点击