重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
cordova和phonegap开发手机APP都不需要mac,最终程序提交到在线打包就行了,这跟直接用object-c开发IOS app是不同的。
成都创新互联是一家集网站建设,平顺企业网站建设,平顺品牌网站建设,网站定制,平顺网站建设报价,网络营销,网络优化,平顺网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
创建完成后,目录结构如下:
创建完成后,目录结构如下:
在我们刚才创建好的 cordovaDemo 文件目录下,为我们的 cordova 添加适用平台
cordova 适用的平台 cordova platform add ios / amazon-fireos / android / blackberry10 / firefoxos / wp8 / windows8 / amazon-fireos
命令 cordova platform add ios
我们可以使用 命令 build ios
也可以使用 目录中 找到 platformsiosHtoolCordova.xcworkspace 运行
运行结果
1、添加 cordova.xcodeproj 到 原有的APP 项目中。
2、添加 www 目录到工程中,记得此处使用 create folder references。
3、添加 config.xml 到工程中。
4、选择工程的Build Settings-Other Links, 设置 -Objc -all_load
5、添加 Build Phases- Link Binary With Librarys添加 libCordova.a , MobileCoreServices , AssetsLibrary
此时编译下原有的 APP 查看有没有报错。
我们创建一个webviewViewController 继承自 CDVViewController ,
运行可能会报错,我们需要把头文件修改成 #import Cordova/CDV.h 即可
运行此时的APP,我们会去加载www文件夹中的 index.html 文件
如果我们需要访问外部链接,需要在我们的 viewWillAppear 中添加 请求
此时便可以访问外部链接,但是不在在内部APP访问,而是跳转到 手机的浏览器,修改我们上面导入的 config.xml 文件即可,在内部访问URL。
运行结果如下
公司的项目是使用vue做前端的界面和逻辑,后面有一部分是使用phaser3.0 做了一个小游戏放到里面,然后整个项目打包成ios 和 android 项目。
其中遇到的几个问题总结一下,希望给有遇到同样问题困扰的人一个解决问题的方向:
这是我们最先面临的问题,我们需要数据的交互传递。
1、从vue界面传递到phaser游戏界面:(变量和无参数方法)
我们在vue界面中定义好变量和方法,将这些变量和方法传递给phaser的游戏界面中。
而我们在phaser 中的调用是直接这样使用:
上面是没有参数的时候调用。
2、phaser 和 vue 相互传递参数的调用
vue界面
phaser 界面
我们使用的是Cordova 打包的,在这个过程中,强调的一点是使用的phaser3打包的,而且用到了WKWebview,这个问题好像phaser2 是不存在这个样的,我搜索的好像是phaser3 加载器无法加载file://这样的资源。
我总结尝试了很久,找到了一个解决的办法。
我们需要在其中间加一个cordova插件:
cordova-plugin-wkwebview-file-xhr
我只解决了phaser3.0 使用cordova 打包过程中不能加载图片的问题,可能是一类问题,但是具体的不知道。
我找到这个问题在 github issuse .
这就是我的探究出来的,感觉改这个bug找了好长时间,记录一下吧。
不是,不止,cordova(原来的phonegap)只是跨平台解决方案之一,但是你还是需要原生的android和ios环境,因为创建的项目,本质上来说,还是android和ios项目,cordova只不过是帮你组织他们而已
if ([urlStr hasPrefix:@"XXXXX"]) {
if (bcVc == nil) {
bcVc = [[NewBCShowViewController alloc]init];
}
// 取得用户id
NSArray *array = [urlStr componentsSeparatedByString:@""];
bcVc.userId = [array lastObject];
ASLog(@"%@",bcVc.userId);
bcVc.address = @"2";
// order.orderDetailUrl = absUrl;
[self.navigationController pushViewController:bcVc animated:YES];
从URL中取到你需要的XXXX 对其操作 DEMO如上
Apache Cordova是一套设备API,允许移动应用的开发者使用JavaScript来访问本地设备的功能,比如摄像头、加速计。它可以与UI框架(如jQuery Mobile或Dojo Mobile或Sencha Touch)等相结合使用,这些UI框架可以使用HTML、CSS和JavaScript开发智能...