前言
本文主要是团队内部查阅, 但对需要实现标题功能的朋友, 也有借鉴的地方
一, 安装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
:
图中的命令:
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.a
AssetsLibrary.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
头文件是否设置:
五, 代码相关
-
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消息发给我, 以免我当时忙而忘记修改