cocos2dx 调用oc java_cocos2dx 调用浏览器打开网址
1、修改安卓端:
CCApplication.cpp/h 打开路径:cocos2dx/platform/android目录,在类中增加函数:
声明
public:
//jingz 龙谷修改
void
openURL(const char* pszUrl);
cpp实现:
//jingz 龙谷修改
void CCApplication::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);
}
}
2、修改IOS端:
类似实现,IOS中.h/mm文件的OC代码中增加,在NS_CC_END前面增加
声明:
//jingz 龙谷修改
void openURL(const char *
pszUrl);
实现:
//jingz 龙谷
void CCApplication::openURL(const char* pszUrl)
{
//原作者的写法,在IOS平台是行不通的
//更改如下
NSString *urlText =
[NSString
stringWithFormat:@"%s",pszUrl];
[[UIApplication sharedApplication]
openURL:[NSURL URLWithString:urlText]];
}
3、platform/android/java/src/org/cocos2dx/lib/Cocos2dxActivity.java增加网络模块的调用
引入包:import android.content.Intent;
import android.net.Uri;
声明类型:
//jingz
private static Activity me = null;
修改函数实现:
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sContext = this;
this.mHandler
= new Cocos2dxHandler(this);
//jingz
龙谷修改
me
= this;
this.init();
Cocos2dxHelper.init(this, this);
}
//实现浏览器模块的调用
public static void openURL(String
url)
{
Intent
i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
me.startActivity(i);
}
总结
以上是生活随笔为你收集整理的cocos2dx 调用oc java_cocos2dx 调用浏览器打开网址的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: java if赋值语句_Java基础第3
- 下一篇: html的input不可编辑状态,HTM