cocos creator发布到ios生成的xcode工程

cocos creator打包发布到ios生成的xcode工程文件
b7785c9811670fa2bcfd6828ce954052655258dc.png

1.jsb_creator_auto 是 Creator 特有的 C++ 类的自动绑定代码,以保证 native 环境和 web 环境的 API 统一
2.res/import 中的文件均是导入后的 asset 资源,在运行时会被反序列化为游戏中的对象
3.jsb_polyfill.jsc 是在 Cocos2d-JS 基础上扩展 Creator 框架的源码
4.project.jsc 是项目中的 JS 源码

oc与js的互相调用

if (cc.sys.isNative && iOS) {//判断是否是源生平台并且是否是iOS平台
    //调用APPController类中的Share方法,并且传递参数
    jsb.reflection.callStaticMethod("AppController","jsCallObectCFuncation: parameters:", parameter1, parameter2);
}

Xcode项目中,在xCode项目中的AppController.h中写入静态方法:

#import <UIKit/UIKit.h>
@class RootViewController;
@interface AppController : NSObject <UIApplicationDelegate>
{
}
+(void) jsCallObectCFuncation:(id) parameter1 parameters:(id) parameter2;
@property(nonatomic, readonly) RootViewController* viewController;
@end

+(void) jsCallObectCFuncation:(id) parameter1 parameters:(id) parameter2{
    
    UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:nil applicationActivities:nil];
   [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController:activityVC animated:YES completion:nil];
}

oc调用js
oc-js.png
导入
#include "cocos/scripting/js-bindings/jswrapper/SeApi.h"
using namespace cocos2d;

+ (id)ObectCCallJSFuncation:(id)funcationName parameters:(id)parameter
{
    
    std::string strRet = [@"" UTF8String];
    
    std::string jsCallStr = cocos2d::StringUtils::format("testMethod(\"%s\");", strRet.c_str());
    se::Value *ret = new se::Value();
    se::ScriptEngine::getInstance()->evalString(jsCallStr.c_str() , -1 , ret);
    NSLog(@"jsCallStr rtn = %s", ret->toString().c_str());
    
    return nil;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容