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

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


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

[cpp]  view plain copy
  1. // CCApplication.h  
  2. void openURL(const char* pszUrl);  

[cpp]  view plain copy
  1. // CCApplication.cpp  
  2. void CCApplication::openURL(const char* pszUrl)  
  3. {  
  4.     ShellExecuteA(NULL, "open", pszUrl, NULL, NULL, SW_SHOWNORMAL);  
  5. }  


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

[cpp]  view plain copy
  1. //CCApplication.h  
  2. void openURL(const char* pszUrl);  
[cpp]  view plain copy
  1. //CCApplication.cpp  
  2. void CCApplication::openURL(const char* pszUrl)  
  3. {  
  4.     JniMethodInfo minfo;  
  5.           
  6.     if(JniHelper::getStaticMethodInfo(minfo,   
  7.         "org/cocos2dx/application/ApplicationDemo",   
  8.         "openURL",   
  9.         "(Ljava/lang/String;)V"))  
  10.     {  
  11.         jstring StringArg1 = minfo.env->NewStringUTF(pszUrl);  
  12.         minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID, StringArg1);  
  13.         minfo.env->DeleteLocalRef(StringArg1);  
  14.         minfo.env->DeleteLocalRef(minfo.classID);  
  15.     }  
  16. }  



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


[cpp]  view plain copy
  1. private static Activity me = null;  

[cpp]  view plain copy
  1. protected void onCreate(final Bundle savedInstanceState) {  
  2.     ...  
  3.     me = this;  
  4.     ...  
  5. }  

[cpp]  view plain copy
  1. public static void openURL(String url)   
  2. {   
  3.       Intent i = new Intent(Intent.ACTION_VIEW);    
  4.       i.setData(Uri.parse(url));  
  5.       me.startActivity(i);  
  6. }  


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

[cpp]  view plain copy
  1. // CCApplication.h  
  2.  void openURL(const char* pszUrl);  

[cpp]  view plain copy
  1. // CCApplication.mm  
  2. void CCApplication::openURL(const char* pszUrl)  
  3. {  
  4.     [[UIApplication sharedApplication] openURL:pszUrl];  
  5. }  



5.调用:

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

[cpp]  view plain copy
  1. // 在你的代码中添加  
  2. CCApplication::shareApplication()->openURL("http://www.baidu.com");  

你可能感兴趣的:(【cocos2dx】用外部浏览器打开url的方法)