一.构建Xcode
1.有一台Mac电脑(特别好的那种),用户必须是管理员
2.下载Laya软件,安装Node.js,
3.在终端输入npm install -g typescript,如果报错Error:13,意思是你权限不够,然后获得Root权限,输入sudo -i,如果让你输入密码
,(你输入了,看不见很正常,输完按确定就是了),获取root权限了 再输入npm install -g typescript(必须是管理员,否则获取不了
root权限),输入tsc -v 看到版本号就是正确的
4.项目在Xcode横竖屏的问题(默认是横屏),打开项目文件,Client/bin 通过一种文本编辑工具打开index.html,在前几行 <meta
name="laya" screenorientation ="landscape"/> 默认是landscape 横屏,如果要竖屏改为portrait,具体参照laya官方文档
5.在Laya工具栏,选择laya调试,点开二维码复制url
6.在工具栏,点击工具—app构建,Native版本后面有个download,下载了才能选择项目类型:Xcode IOS,应用名称就是软件名称,URL 就是上
一步复制的那个,其他参数可以默认,否则他默认的是一个laya官方示例
二.Xcode配置
1.进入导出路径 layabox/ios/layabox,双击后缀名是 .xcodeproj 就打开XCode了
2.证书 ios_development和ios_distribution导入到钥匙串里,选择系统的钥匙串
3.双击最上方的layabox 里面有设置Project和Targets选择Team ID这时候得添加一个AppleId,最好添加申请证书的AppleId,这样可以减少一些步骤,比如PP文件
4.在config.ini 把orientation=30(默认是30) 2:home键在下 4:hone键在上 8;home键在左 16:home键在右
5.可以使用真机调试(用手机连接IPhone手机,选择),也可以使用模拟器
三.二次开发
1.在ts中比如登录(这些方法都是固定的),在登录按钮的事件里写,如:
Var sData={type:”test”};
window[‘conchMarket’].login(JSON.stringfiy(sData),function(data)){
//OC向你回调
Console.log(data);
}
- 在Xcdoe中
这个回调方法是在 Xcode项目里layabox/ios/LayaRuntime/iOS/include/PlatformInterface/LayaPlatformCallback.h中声明的,然后在LayaPlatformInterface的LP_Login中调用LayaPlatformCallback的LP_LoginCallback方法来实现OC调用TS,在MarketAppStore.mm文件填写向TS回调的代码,如登录:
-(void)LP_Login:(NSString)jsonParam{
[[LayaPlatformCallback GetInstance]] LP_LoginCallback:jsonParam];
}
四 对接渠道的API整合
init | 初始化Market | conchMarket.init(JSON.stringify(sData),function(data)); |
login | 登陆 | conchMarket.login(JSON.stringify(sData),function(data)); |
logout | 登出 | conchMarket.logout(JSON.stringify(sData),function(data)); |
switchUser | 切换用户 | conchMarket.switchUser(JSON.stringify(sData),function(data)); |
enterPlatform | 进入第三方的平台 | conchMarket.enterPlatform(JSON.stringify(sData),function(data)); |
enterBBS | 进入论坛 | conchMarket.enterBBS(JSON.stringify(sData),function(data)); |
enterFeedback | 反馈 | conchMarket.enterFeedback(JSON.stringify(sData),function(data)); |
enterAccountMgr | 进入账户管理 | conchMarket.enterAccountMgr(JSON.stringify(sData),function(data)); |
authorize | 授权 | conchMarket.authorize(JSON.stringify(sData),function(data)); |
refreshToken | 刷新token | conchMarket.refreshToken(JSON.stringify(sData),function(data)); |
recharge | 充值 | conchMarket.recharge(JSON.stringify(sData),function(data)); |
buyProps | 购买道具 | conchMarket.buyProps(JSON.stringify(sData),function(data)); |
setRechargeInfo | 设置充值信息 | conchMarket.setRechargeInfo(JSON.stringify(sData),function(data)); |
enterShareAndFeed | 分享 | conchMarket.enterShareAndFeed(JSON.stringify(sData),function(data)); |
enterInvite | 邀请 | conchMarket.enterInvite(JSON.stringify(sData),function(data)); |
getGameFriends | 获得好友列表 | conchMarket.getGameFriends(JSON.stringify(sData),function(data)); |
sendToDesktop | 发送到桌面 | conchMarket.sendToDesktop(JSON.stringify(sData),function(data)); |
sendMessageToPlatform | 发送消息 | conchMarket.sendMessageToPlatform(JSON.stringify(sData),function(data)); |
canSendToDesktop | 能否pushicon | conchMarket.canSendToDesktop(JSON.stringify(sData),function(data)); |
openTopicCircle | 打开话题圈 | conchMarket.openTopicCircle(JSON.stringify(sData),function(data)); |