前言
本文主要是团队内部查阅, 但对需要实现标题功能的朋友, 也有借鉴的地方
一, 安装Cordova
-
npm install -g cordova注: 可自行搜索安装, 具体步骤记不清了
二, Xcode工程设置
-
Build setttings中:- other linker flags
配置:-ObjC,-lstdc++`
- other linker flags
-
Build Phases中:Target Dependencies添加CordovaLib添加一个选项
New Run Script Script, 命名为:copy www directory:
copy www directory
图中的命令:
NODEJS_PATH=/usr/local/bin; NVM_NODE_PATH=~/.nvm/versions/node/`nvm version 2>/dev/null`/bin; N_NODE_PATH=`find /usr/local/n/versions/node/* -maxdepth 0 -type d 2>/dev/null | tail -1`/bin; XCODE_NODE_PATH=`xcode-select --print-path`/usr/share/xcs/Node/bin; PATH=$NODEJS_PATH:$NVM_NODE_PATH:$N_NODE_PATH:$XCODE_NODE_PATH:$PATH && node cordova/lib/copy-www-build-step.js
-
General中Linked Frameworks and Libraries:libCordova.aAssetsLibrary.framework(这个可能不需要添加)
三, 添加类, 资源等文件

注: 以下将制作的目标工程简称为tp(target project的简称)
将
01-添加的cordova文件文件夹中的cordovaClasses以Create groups形式添加至tp将
02-添加的cordova子工程中的CordovaLib工程以子工程形式添加至tp-
将
03-添加reference文件夹_web游戏资源中的www文件夹以Create folder references形式添加至tp-
www中替换成当前网页游戏的所有资源: js, css, image, index.html 等
-
替换过后在tp中显示如下:

-
将
04-添加命令文件中的cordova文件夹复制到tp同级目录下:物理文件结构
四, 其它
-
当tp报错误: xxx头文件找不到时, 检查
public头文件是否设置:`public`头文件
五, 代码相关
-
main.mm:
[ZEDTempDataStorage sharedStorage].argc = argc;
[ZEDTempDataStorage sharedStorage].argv = argv;
int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
return retVal;
- 全局搜索一下
[UIApplication sharedApplication], 看有没有地方使用这种方式去获取UnityAppController,如果有, 改为下面代码所示去获取ZEDUnityAppController的
(ZEDUnityAppController *)[[UIApplication sharedApplication] valueForKeyPath:@"delegate.unityViewController"];
注:
OC 代码也可使用
[ZEDUnityAppController shareInstance]获取C++ 代码因为不能导入
ZEDUnityAppController.h头文件, 所以用上述方式. 不过应该有方法, 只是我没时间处理. 如果你知道, 请告诉我
- 将
MainViewController的遮挡图片属性maskImageView改成实际名称:
maskImageView.image = [UIImage imageNamed:@"LaunchImgOfSB"];
- 测试时切换网页游戏与Unity游戏,
MainViewController:

ZEDAppLaunchTypeiOSNativeApp = 1,//H5小游戏
ZEDAppLaunchTypeUnity3DGame,//Unity游戏
- 测试时删除保存的游戏类别
type, 即上面的枚举值:
[ZEDGameTypeMgr zed_removeSavedType]
加载游戏类别原理及此方法的来由:
用户第一次打开游戏时, 会从服务器得到游戏类别并保存起来, 下次启动App不会再次请求服务器. 所以如果需要切换游戏, 必须卸载或删除保存在沙盒中的游戏类别.
最后:
如果文档有可以改进的地方, 可以随时qq消息发给我, 以免我当时忙而忘记修改


