重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

ios混合开发,ios混合开发H5页面白屏

移动端app开发,原生开发与混合开发的区别?

原生开发

创新互联是一家网站建设、网站制作,提供网页设计,网站设计,网站制作,建网站,定制网站建设,网站开发公司,从2013年开始是互联行业建设者,服务者。以提升客户品牌价值为核心业务,全程参与项目的网站策划设计制作,前端开发,后台程序制作以及后期项目运营并提出专业建议和思路。

 原生开发是在Android、IOS移动平台上利用各自的开发语言、开发API、开发工具进行App软件开发。例如Android是利用Java或者kotlin,使用Eclipse、Android studio、idea等工具开发;IOS是利用Objective-C或者Swift,使用Xcode工具等进行开发。

原生开发的优点:

可访问手机所有功能(如GPS、摄像头等)、可实现功能齐全;

运行速度快、性能高,绝佳的用户体验;

支持大量图形和动画,不卡顿,反应快;

比较快捷地使用设备端提供的接口,处理速度上有优势。

原生开发的缺点:

开发周期长;  

制作费用高昂,成本较高;  

可移植性比较差,一款原生的App,Android和IOS都要各自开发,同样的逻辑、界面要写两套;  

内容限制(App   Store限制);  

获得新版本时需重新下载应用更新。

混合开发

混合开发,是指在开发一款App产品的时候,为了提高效率、节省成本而利用原生与H5的开发技术的混合应用。通俗点来说,这就是网页的模式,通常由“H5云网站+APP应用客户端”;两部分构成。

混合开发是一种取长补短的开发模式,原生代码部分利用插件或者其它框架为H5提供容器,程序主要的业务实现、界面展示都是利用与H5相关的技术进行实现的。很多APP都是利用混合开发模式而成的。  

混合开发优点:

开发效率高,节约时间。同一套代码Android和IOS基本上都可使用;  

更新和部署比较方便,每次升级版本只需要在服务器端升级即可,不再需要上传到App   Store进行审核;  

代码维护方便、版本更新快,节省产品成本;  

比web版实现功能多;  

可离线运行。 

混合开发缺点:  

网络要求高:混合APP数据需要全部从服务器调取,每个页面都需要重新下载,因此打开速度慢,网络占用高,缓冲时间长,容易让用户反感。  

iOS-OC和Swift相互混合开发(OC&Swift混编)

在ios的OC和Swift混合开发无非是2种,一种是在OC的项目中使用Swift语言开发,这里就需要创建Swift文件(或者引用Swift写的的第三方库),另一种是在Swift项目中使用OC语言开发,这里就需要创建OC文件,(或者引用OC写的的第三方库)

首先我们在一个已有的OC的项目中,创建一个Swift文件

这里Xcode就会自动提示我们如:图1

Would you like to configure an Objective-C bridging header?

Adding this file to ocProjectUseSwift will create a mixed Swift and Objective-C target. Would you like Xcode to automatically configure a bridging header to enable classes to be accessed by both languages?

提示我们创建一个桥接的头文件,当我点击 “ Create  Bridging Header”,Xcode就给我们自动创建,自动创建的规则是:项目名+ "-Bridging-Header.h" 如图2

同时在项目中创建一个Swift文件

然后在在 targets - Build Settings - Packaging 中设置Defines Module 为YES

设置完后开始使用,怎么在oc中使用Swift的类呢?

重点: 在文件中引用 #import "ocProjectUseSwift-Swift.h"  记住不是我创建的SecondVC.swift,是“项目名-Swift.h"文件名 ,引入这个文件就引入了所有的Swift文件内的类、方法、属性

说明:这个文件是系统自动创建,自动添加所有我们创建的Swift的类的方法和属性

前提是要在方法和属性前面要加@objc 如图3:

用@objc声明好之后,在我们引用的是“项目名-Swift.h"文件名的 #import "ocProjectUseSwift-Swift.h" 内就看到有标记了如图4

这里分了3块,红色和绿色标记框内是我们自己标记的oc可用的属性和方法,蓝色框内是系统自己生成的oc可以初始化方法

具体使用就在oc文件中,如图5:

此事,在这个OC创建的项目中,我们创建的Swift文件怎么使用OC创建的类呢?

这里就用到我们创建的桥接头文件了,在图2中的桥接头文件,引入OC的头文件,如图6

就这样很简单,所以Swift文件的类都可以使用这个OC文件内的类了,使用起,和OC调用OC的类一样,如如图7和图8

Swift的项目中,第一次创建OC的文件,此时系统会自动帮我们创建桥接头文件,如图9

然后就有了和图2一样的桥接头文件,剩下的就和图6一样,在桥接头文件内引入头文件,即可使用OC的类,第三方库如果也是OC写的,在引入的时候也自动会加这个桥接头文件,当然一个项目只能加一次,加过的就不需要加了

iOS混合开发 vConsole调试控制台不显示

在开发中,难免遇到原生嵌套H5页面的需求,那么vConsole调试控制台 对于前端开发的同学就变得尤为重要,但是有时候vConsole控制台并不会在页面显示,遇到这种情况 我们只需项目允许http协议请求。

在info.plist里面增加 App Transport Security Settings 属性,再在此属性内增加 Allow Arbitrary Loads ,并设置值未YES。

此时再重新运行项目就可以看到vConsole调试控制台了


分享名称:ios混合开发,ios混合开发H5页面白屏
分享URL:http://cqcxhl.com/article/dssehho.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP