从github上检索 IOS webview 或者 OC webview 可以搜索到一些开源框架,例如:
https://github.com/marcuswestin/WebViewJavascriptBridge
但是从这些项目的描述来看,都是提供IOS开发语言Object-C与 JS 语言的一个通信桥梁。需要使用此类框架首先也需要有开发语言的学习时间成本,后期具体功能的扩展需要自己去做,同样需要了解IOS的系统功能。
2、云打包
使用云打包只需要提供前端页面入口地址,由云端打包生成应用,如之前开发安卓框架前了解一样,例如Hbuilder这种方式。其提供了部分natvie端接口说明,但是文档说明比较差,出现问题无法联合调试解决,因为无法获知native端的实现,有可能出现测试出的问题无法解决,不利于维护。类似开源项目有:
https://github.com/nabilfreeman/ios-universal-webview-boilerplate
3、自主开发框架
如同开发安卓基于webview的App框架一样,需要基于IOS系统在其平台上开发应用,前端页面需要的native端功能由自己实现,提供统一接口给前端,便于问题的调试解决和后期维护,需要一定的学习时间和成本。根据项目时间可以有不同的开发方式:如果开发周期短,可以选择外包开发+自主维护,即招聘具有三年左右IOS开发经验的工程师完成这个框架和目前我们所需功能的开发,期间我司人员对接学习,后续接收维护,预估大概一个月左右能完成。如果开发周期相对比较长,可以自研,从零开始学习搭建环境,开发应用,预估时间大概四个月左右能有可用框架(语言学习和环境搭建一个月左右、IOS应用打包运行和基本常用功能调试一个半月左右、项目需求特定IOS系统功能半个月左右,基于webkit前端开发调试一个月左右)。
关于IOS应用基于webview开发的可行性之前已经做过调研,其中已经对于苹果公司对于应用的审核规则进行了说明:
https://developer.apple.com/cn/app-store/review/guidelines/
对于使用网页来展示界面的应用开发,其中没有明确声明禁止,只有如下表述:
- 仅使用标准 WebKit 视图中提供的功能 (例如,它必须在 Safari 浏览器中原生打开和运行,且无需修改也无需其他软件);您的 app 必须使用 WebKit 和 JavaScript Core 来运行第三方软件,且不得试图扩展或披露原生平台 API 给第三方软件;
并且从github上查看到的项目来看,应该有很多IOS应用也是继承了开源框架,使用基于webview来展示界面的开发方式,所以可以使用混合开发方式来进行应用开发。
开发的线路规划主要分为如下几个大的步骤:
IOS开发采用Object-C 或者 Swift, 基于Swift是2014年才推出来的语言,资料和成熟度不如OC,所以采用OC语言来开发学习。
移动端应用的开发要能正常运行起来,必须先熟悉好整个开发环境,能够完成基本界面绘制,并打包程序,在设备上运行起来。
基于苹果系统提供的功能,在自己开发的应用中去使用需要的基本功能。
有了前面的各种功能作为基础提供后,在IOS应用中适配使用webkit来加载html页面,并封装接口提供给前端使用,联合调试功能。
根据我们公司的开发需要,需要申请一个公司开发者账号,账号的申请周期比较长,首先需要提供AppleId, 并且要开启双重认证,即账号必须要绑定一个设备进行登录,iphone,iPad, Mac 都可以。
具体操作可参阅文档:
https://www.jianshu.com/p/dafa8a1c3373
开发环境的搭建,目前已经试过使用虚拟机来搭建黑苹果,安装Xcode工具,主要过程如下文档所述:
https://www.jianshu.com/p/ce50dbecdff9
只是其中的破解工具版本太低,会出现无法找到MAC OS的情况,需要使用如下补丁工具来运行:
https://github.com/DrDonk/unlocker
虽然本机电脑内存16G,但是由于磁盘不是SSD,运行起来仍然会很卡,并且虚拟机中的分辨率不能很好地适配屏幕,在进行学习调试时操作非常不便。在使用过程中,由于黑苹果镜像的版本问题,对于安装的工具版本都有限制,Xcode工具尝试了三个版本才安装成功,最终选择了7.*的版本。但是苹果官网上面声明从2019年三月开始,需要上架的App需要继承IOS 12.1版本以上的SDK,并且需要用XCode 10.1版本以上的工具打包才可以。
应用最终上架依赖于在MAC上使用的工具XCode 或者 Application Loader,虽然有那种在windows端使用的马甲工具appuploader, 但是没有尝试过。基于开发的便利和效率需要,请准备一台MAC设备,Mac Mini也可以,请准备一台MAC设备,Mac Mini也可以,请准备一台MAC设备,Mac Mini也可以。
Object-C 语言是将C语言增加了面向对象的功能,基础语法和C语言类似,此部分可以参照如下两部分教程进行练习:
https://www.yiibai.com/objective_c/objective_c_overview.html
https://blog.csdn.net/jiangwei0910410003/article/details/41928347
学习IOS应用开发的基本功能,打包运行:
https://study.163.com/course/introduction.htm?courseId=1002858003#/courseDetail
根据安卓这边移动开发的经验,基本功能主要包括:界面布局、组件使用、服务使用、消息事件机制、资源访问、本地数据存储、网络访问、文件访问、权限问题。
根据官方开发文档中提供的API说明,调用系统功能:
https://developer.apple.com/documentation
目前我们项目的需求功能为:拍照、录像、扫描、定位、IMEI获取。
根据官网说明,适配webview开发:
https://developer.apple.com/documentation/webkit/
- 开发设备
常规版:
MAC mini 设备 + 显示器鼠标键盘
https://www.apple.com/cn/shop/buy-mac/mac-mini/MRTT2CH/A#
3.0GHz 六核第八代 Intel Core i5 处理器 (Turbo Boost 最高可达 4.1GHz)
8GB 2666MHz DDR4
256GB 固态硬盘
¥8669
https://item.jd.com/5375281.html#none
AOCQ2490PXQ
¥1299
整机IMAC
https://www.apple.com/cn/shop/buy-mac/imac/MMQA2CH/A#
2.3GHz 双核第七代 Intel Core i5 处理器 (Turbo Boost 最高可达 3.6GHz)
8GB 2133MHz DDR4
256GB 固态硬盘
¥9858
砍价版:
MAC mini 设备 + 显示器鼠标键盘
https://www.apple.com/cn/shop/buy-mac/mac-mini/MRTR2CH/A#
3.6GHz 四核第八代 Intel Core i3 处理器
8GB 2666MHz DDR4
128GB 固态硬盘
¥6331
https://item.jd.com/100004309184.html#crumb-wrap
OCI2490PXH5
¥949
整机方案IMAC
https://www.apple.com/cn/shop/buy-mac/imac/MMQA2CH/A#
2.3GHz 双核第七代 Intel Core i5 处理器 (Turbo Boost 最高可达 3.6GHz)
8GB 2133MHz DDR4
1TB Serial ATA 硬盘 (5400 rpm)
¥8390
可采购一台二手iphone