一.构建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)); |