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
- 下一篇: java https 慢_jetty h