1. 首页
  2. 全部文档
  3. 移动端开发手册
  4. 苹果手机及平板应用(3节)
  5. 开发原生苹果应用

开发原生苹果应用

无代码开发导出苹果原生应用

  • TERSUS可以将移动应用项目导出为Xcode项目文件资源包,然后开发者可以在Mac电脑上用Xcode软件导入项目进行调置并调试和提交验证及上传应用商店
  • 注意项目应使用移动应用模板开发,导出的项目是移动类型应用模板的移动端显示块中内容

开发概述

开发一个原生的苹果应用主要有两部分:
1、开发一个移动应用项目,并导出为Xcode项目文件资源包—这部分可以由TERSUS工具在任意类型的电脑上完成
2、Xcode项目生成为苹果原生应用程序—这部分由苹果的Xcode软件完成,并且需要在苹果Mac电脑上操作

开发移动应用

  • 和其他应用开发一样采用拖放和连线开发,唯一要求是开发内容需要在模板的<Mobile View>移动端显示块中开发
  • 如果是从一个新项目开始处理的,建议新建项目(File>New>Tersus Project)时选“New Mobile Application”模板,模板中已有移动端显示块不需要自己拖入并进行属性设定处理
  • 一般不可以直接使用服务器端行为处理元件设计逻辑,因为可能并不与服务器进行数据交互处理,数据放于客户端;如果需要设计与服务器进行交互的应用,应用以下处理方式:
    方式一:服务器端的处理设计在同一个应用中

    • 开发服务器端处理的方式和网页应用服务一样,直接在服务器行为处理元件中进行逻辑开发
    • 开发过程中边开发边测试和所有开发测试一样(使用开发工具菜单栏中绿三角按钮),应用就是通过网页程序使用的方式来调用的
    • 如果应用开发完成,可以部署到服务上使用,部署方式和所有TERSUS项目部署一样
    • 部署完成后,可以访问http://host[:port]/app/mobile.html来使用应用,也可以通过访问部署的项目来确认成功部署
    • 在正式将项目导出为原生应用前,应在项目文件夹的“Web”文件夹中放一个js文件,在其中添加以下内容:
        if (tersus.isNative)
           tersus.serverURL='http://host[:port]/app';
      
    • 用部署时的信息来替换其中的host、port、app内容
    • 如果项目文件夹中没有“Web”文件夹或js文件,可以创建,建议js文件命名为“Server.js”
    • 注意:可以开发工具测试一下此处理程序,并不需要部署到服务器再进行测试
      使用开发的本机电脑IP,替代**server.js***host*
      用开发工具的运行按钮来运行项目(开发平台自带的服务器)
      将原生应用导入到手机中
      将手机联网到开发电脑所在同一个网络中
      在手机中运行原生应用

    如果运行时,出现“Failed to execute service”报错信息,则意味着与开发电脑服务器连接失败,需要确认以上步骤;用“http://host[:port]/app”来在手机的浏览器访问应用,此时手机就是”客户端”,而开发电脑就是“服务器端”

  • 另一处理方式更为常用,且服务器和客户端可以分离
    方式二:服务器端的处理设计在不同的应用中

    • 将服务器端的逻辑开发在另一个应用的“Callable Service可调用服务”元件中(比如命名为“fuwu”,且将可调用服务放于项目最底层系统元件中),并将此项目部署在服务器
    • 要在原生应用中调用服务器端的处理逻辑,在移动应用项目的逻辑需要位置放入一个与服务器端逻辑项目可调用元件同名的“Service服务器端行为处理”元件(同样命名为fuwu,注意),为此元件添加一个“URL”输入元件(选中Service元件右键单击在弹出的菜单中添加子元件中的“URL”子元件),将可调用元件所在的服务器端信息传入“URL”输入元件(比如为“http://host[:port]/fuwu”)
  • 原生应用可以使用设备本地、客户端的数据;所有数据库操作处理,如果不是在服务器端元件中的(Service/Secured Service/Show File等元件),则都是对本地数据库的操作,如果没有库表字段对象,则自动在运行时生成,请参考“离线应用及本地数据库”一节说明
  • 默认情况下,TERSUS会为原生应用在导出时生成项目名称对应的图标,同时为苹果生成开始运行时的开机图片(splash image);如果开发者想用自己设计的图标和图片,在项目文件夹底层中新建一个“images”文件夹,并将图标图片放于此文件夹中,注意这些图标图片必须符合苹果或安卓的图标图片标准,如:尺寸、背景色、其他属性要求,请查看苹果官方和安卓官方的应用开发文档来设计
    苹果非大屏相关的图标图片尺寸及名称说明:

    icon36.png(36x36 pixels) - Android ldpi icon
    icon48.png(48x48 pixels) - Android mdpi icon
    icon57.png(57x57 pixels) - iPhone low resolution / Android fallback icon
    icon72.png(72x72 pixels) - iPad / Android hdpi icon
    icon96.png(96x96 pixels) - Android default and xdpi icon
    icon114.png(114x114 pixels) - iPhone high resolution icon
    splash320x480.png- iPhone splash image (Default~iphone.png)
    splash640x960.png- iPhone splash image (Default@2x~iphone.png)
    splash640x1136.png - iPhone splash image (Default-568h@2x~iphone.png)
    splash768x1024.png - iPhone splash image (Default-Portrait~ipad.png)
    splash1536x2048.png - iPhone splash image (Default-Portrait@2x~ipad.png)
    splash1024x768.png - iPhone splash image (Default-Landscape~ipad.png)
    splash2048x1536.png - iPhone splash image (Default-Landscape@2x~ipad.png)
    

更多要求请参考苹果图标设计规范

  • 苹果应用开机运行图片(splash image)是打开应用但还未加载TERSUS开发的应用时显示的图片,和图标等图片在生成原生应用的时候一同打包入Xcode项目文件资源包中;当这个图片(splash image)在应用加载完后,就不显示,TERSUS开发内容正式运行时,先加载“Loading…”信息,然后才显示移动端的显示界面
  • 可以在项目文件夹的“web”子文件夹下,添加一个loading.txt文件,用这个文件中的信息代替“Loading…”信息,注意这个文件是**.txt**格式的,但是内容可以用超文本来设计,也可以放入图片信息,可以处理为如下内容:
    <div style="height:480px;background-image:url(images/splash.png);background-position:0px -20px;"></div>
    

    这个处理中,一个splash名称的图片放于web/images子文件夹下,这个图片功能和之前的开机运行图片(splash image)一样,只是显示时间不同,一般因为这个“Loading…”信息显示时间太短,图片不一定能正常加载显示完就转到应用主界面了

  • 导出应用程序
    1、在TERSUS开发工具中选File>Export>Tersus>Native Mobile Application可在菜单工具栏点选导出按钮导出原生应用
    2、在弹窗中选导出目标平台为iPhone
    3、默认情况下,导出的Xcode项目资源文件会在项目文件夹的export/iphone子文件夹中,可能通过弹窗中的Export Location来指定导出位置
    4、点击Finish按钮导出Xcode项目资源文件

生成原生应用

  • 在苹果电脑中打开Xcode软件,导入之前导出的Xcode项目
  • 导入项目后,可以重新上传设置图标和开启应用显示图片资源文件(有可能资源包中文件是默认的Cordova图标)
  • 用Xcode软件的苹果应用模拟器进行项目测试
    · 将项目生成目标设定为模拟器Simulator*然后点击生成运行Build and Run**来在模拟器查看测试项目
  • 要在某个苹果手机安装测试,或上传苹果商店,需要开发者注册开发者账号用苹果公司提供的开发者认证信息然后才能进行加载到手机的测试和操作上传苹果商店
    · 首先需注册参加苹果开发者项目,然后用苹果要求的工具及开发文档对项目进行处理
    · 建议先参考苹果公司的“应用发布指导”,然后参考“应用提交指南