Android对接微信SDK 续二

本文介绍了在Android应用中,使用Cocos框架对接微信SDK时遇到的问题及解决方案。主要讨论了evalString方法必须在GL线程运行的限制,并详细说明了如何在不同的Activity之间传递数据,特别是在Cocos2dxJavascriptJavaBridge和Cocos2dxActivity之间。通过扩展Application来实现全局数据共享,避免了Intent传递数据的坑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好了,接通onResp了,又一个问题出来了。App采用的cocos框架,这个回调最终要去到js层,android下通过调用Cocos2dxJavascriptJavaBridge.evalString方法,运行js代码。

evalString方法限制

这个方法有个限制,必须在gl线程运行,也就是说WXEntityAcitivity.onResp必须将数据传到Cocos2dxActivity,然后runOnGLThread。这个在cocos官网有介绍:

//一定要在GL线程中执行
app.runOnGLThread(new Runnable() {
    @Override
    public void run() {
        Cocos2dxJavascriptJavaBridge.evalString("cc.log(\"Javascript Java bridge!\")");
    }
});

如何在activity之间传送数据

综合下来,最后采用了扩展程序默认Application的办法。通过Intent的方法是有坑的,各位可以试试,或者有高手可以指点在下。

Application代码:
import android.app.Application;
public class MyApp extends Application
{
    private String mStr;

    public String getStr()
    {
        return this.mStr;
    }
    public void setStr(String str)
    {
        this.mStr = str;
    }
}
AndroidManifest.xml配置
<application android:name=".MyApp" android:icon="@drawable/icon" android:label="@string/app_name">

####MyApp使用####

MyApp myApp = (MyApp)getApplication();
String str = myApp.getStr();

全局可用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值