admin管理员组文章数量:1619183
由于公司要做类似内嵌浏览器的功能,在网上找了下,几乎都只是调用外部浏览器来实现,就先把我找到的关于这方面的只是总结一下。(原文转自:http://www.cocos2d-x/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");
版权声明:本文标题:【COCOS2DX-游戏开发之十四】用外部浏览器打开url的方法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728789982a1173603.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论