C4-Cordova在iOS平台的使用

一、创建工程及运行

  1、安装部署工具

    ios-simios-deploy工具,可以使你通过命令行在iOS模拟器和iOS设备上面启动app。

        $ npm install -g ios-sim
        $ npm install -g ios-deploy    

  2、Create a New Project

        $ cordova create hello com.example.hello "HelloWorld"
        $ cd hello
        $ cordova platform add ios
        $ cordova prepare              # or "cordova build"    

  3、部署运行app

    部署在一个已经连接的iOS设备上:

        $ cordova run ios --device

    部署在一个默认的iOS模拟器上:

        $ cordova emulate ios

二、config.xml详解

  config.xml文件控制了app的一些基本设置信息。

  1、EnableViewportScale (boolean类型, 默认是false): 设置为true,允许meta标签的视窗在用户限定的范围内缩放或者禁用。

        <preference name="EnableViewportScale" value="true"/>    

  像如下的html一样来创建一个视窗,可以禁止缩放,可以在渲染的WebView里灵活缩放。

        <meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no' />

  2、MediaPlaybackAllowsAirPlay (boolean类型, 默认是true): 设置false会阻止view对Air Play的支持。默认在UIWebView和WKWebView是可用的。

        <preference name="MediaPlaybackAllowsAirPlay" value="false"/>

  3、MediaPlaybackRequiresUserAction (boolean类型, 默认是false): 设置true禁止HTML5上面的音视频响应自动播放属性的设置或者js代码的调用引起的自动播放事件。

        <preference name="MediaPlaybackRequiresUserAction" value="true"/>

  4、AllowInlineMediaPlayback (boolean类型, 默认是false): 设置true允许HTML5内联媒体在屏幕范围内播放,通过浏览器支持控制而不是远胜控制。可以通过给任意<video>元素添加webkit-playsinline属性来实现。

        <preference name="AllowInlineMediaPlayback" value="true"/>

  5、BackupWebStorage (string类型, 可以设置为none,local或者默认是cloud): 设置cloud允许备份数据到iCloud。设置local仅允许通过iTunes同步备份。设置none禁止备份。 

        <preference name="BackupWebStorage" value="local"/>

  6、TopActivityIndicator (string类型, 默认是gray): 控制ActivityIndicator在状态栏的显示,可选的有whiteLarge, white, and gray。

        <preference name="TopActivityIndicator" value="white"/>    

  7、KeyboardDisplayRequiresUserAction (boolean类型, 默认是true): 设置为false允许键盘响应inputs元素的调用。

        <preference name="KeyboardDisplayRequiresUserAction" value="false"/>

  8、SuppressesIncrementalRendering (boolean类型, 默认是false): 设置true的话,元素渲染到屏幕前会等待所有的内容获取完全。

        <preference name="SuppressesIncrementalRendering" value="true"/>

  9、GapBetweenPages (float类型, 默认是0): 表示页面间距。

        <preference name="GapBetweenPages" value="0"/>

  10、PageLength (float类型, 默认是0): 在页面滚动方向上的页面长度。当页面滚动方式是由右到左或者由左到右的时候,这个属性代表的是每个页面的宽度。当页面滚动方式是由上到下或者由下到上的时候,这个属性代表的是每个页面的高度。默认值是0,意味着页面的尺寸有视图决定。

        <preference name="PageLength" value="0"/>

  11、PaginationBreakingMode (string类型, 默认是page): 可选项有page和column。这个属性决定了CSS属性设置的column-和page-breaking是否能生效。此属性设置了column的时候,由CSS控制的页面元素内容就会由column-breaking替代page-breaking。

        <preference name="PaginationBreakingMode" value="page"/>    

  12、PaginationMode (string类型, 默认是unpaginated): 可选项有unpaginated, leftToRight, topToBottom, bottomToTop, and rightToLeft。这个属性决定了webview的内容在充满视窗的时候是分页还是显示一个长的滑动的view。如果设置了分页格式,内容元素的分页会导致webview调用PageLength和GapBetweenPages的value去布局内容。

        <preference name="PaginationMode" value="unpaginated"/>

  13、UIWebViewDecelerationSpeed (string类型, 默认是normal): 可选项有normal, fast。这个属性控制了滑动的减速度。默认的normal是最接近原生app效果的,而fast选项是针对移动端Safari的。

        <preference name="UIWebViewDecelerationSpeed" value="fast" />

  14、ErrorUrl (string类型, 默认无设置): 如果设置了,在app里引用此本地页面文件会报错。

        <preference name="ErrorUrl" value="myErrorPage.html"/>

  15、OverrideUserAgent (string类型, 默认无设置): 如果设置了,设置的值就会替代webview原来的UserAgent(用户代理),在确定获取远端页面的请求是由app发出的还是由浏览器发出的时候UserAgent是很有用的。使用警告,这可能导致服务兼容问题。大多数情况下,用AppendUserAgent代替。

        <preference name="OverrideUserAgent" value="Mozilla/5.0 My Browser" />

  16、AppendUserAgent (string类型, 默认无设置): 如果设置了,设置的值就会加到webview原来的UserAgent后面。设置OverrideUserAgent的时候,此设置会被忽略。

        <preference name="AppendUserAgent" value="My Browser" />

  17、target-device (string类型, 默认是universal): 可选项有handset, tablet, universal。此属性直接显示在Xcode工程的TARGETED_DEVICE_FAMILY上面。注意,如果你的target设置了universal,你提交应用的时候需要同时提供iPhone和iPad的截屏,否则可能被拒。

        <preference name="target-device" value="universal" />

  18、deployment-target (string类型, 默认无设置): 设置了应用支持的iOS系统最低版本。详细信息可以查看苹果官方文档Deployment Target Settings

        <preference name="deployment-target" value="7.0" />

  19、CordovaWebViewEngine (string类型, 默认是 'CDVUIWebViewEngine'): 设置WebView的引擎插件提供给本地的app,插件必须遵守CDVWebViewEngineProtocol协议。设置的value必须匹配已安装的WebView引擎插件在'feature'标签内的名字。此设置通常为自动设置安装。

        <preference name="CordovaWebViewEngine" value="CDVUIWebViewEngine" />

  20、SuppressesLongPressGesture (boolean类型, 默认是false): 设置为true避免了iOS9+的长按webview显示一个放大镜控件的效果出现。测试你的应用程序,因为这可能影响文本选择的功能。

        <preference name="SuppressesLongPressGesture" value="true" />

  21、Suppresses3DTouchGesture (boolean类型, 默认是false): 设置为true避免支持3D Touch的设备在用户用力长按webview的时候出现一个放大镜控件。请测试你的应用,因为这禁止了onclick操作,但是ontouchend依然生效。如果此设置为true,SuppressesLongPressGesture同样会被设置为true并有效。

        <preference name="Suppresses3DTouchGesture" value="true" />

  22、CDVSystemSchemesOverride (string类型, 默认是 maps,tel,telprompt):  用逗号分隔的URL schemes列表里的URL是被允许进入系统的,而不是由科尔多瓦WebView本身。

        <preference name="CDVSystemSchemesOverride" value="maps,tel,telprompt" />
posted @ 2016-01-07 16:12  朱亚男  阅读(716)  评论(0编辑  收藏  举报