您的位置:首页 > 其它

[Phonegap+Sencha Touch] 移动开发53 Cordova/Phonegap 4(或5) 多了什么?

2015-07-06 21:02 459 查看
Cordova 4(或5)其实是Cordova CLI 4(或5),即命令行工具版本是4(或5)。

截至本文发表日期,Cordova CLI最新版本5.1.1,其中的Cordova Android 最新版本是4.0.2;Cordova iOS最新版本是3.8。
详细查看http://cordova.apache.org/

对于Cordova Android 4.0来说,最大的改变有:

一、Cordova Android 4.0中,自动化构建工具从ant变成了gradle
这是为了配合google官方的开发工具Android studio(原本的eclipse+ADT不再更新)

二、Cordova插件cordova-plugin-whitelist(访问/请求 白名单插件)
此插件必须!!
插件具体内容请看:https://github.com/apache/cordova-plugin-whitelist

白名单的配置有以下几个方面:
1、Navigation Whitelist(webview中页面跳转白名单)
配置方式:config.xml 中 配置 <allow-navigation> 节点
如<allow-navigation href="http://*" />,即允许跳转到任意http协议的页面
此节点对于单页面webapp用不到

2、Intent Whitelist (意图白名单)
这里的意图,也就是从外部浏览器打开,或者<a href="tel:10086">打电话</a>,<a href="sms:10086">发短信</a>。
配置方式:config.xml 中 配置 <allow-intent> 节点

如<allow-intent href="*" />表示允许任何意图

3、Network Request Whitelist(http请求白名单)
也就是ajax和jsonp请求了
配置方式:config.xml 中 配置 <access> 节点,
如<access origin="*" />即允许任何网址的http请求

4、Content Security Policy
W3C的Content Security Policy,简称CSP。顾名思义,这个规范与内容安全有关,主要是用来定义页面可以加载哪些资源,减少XSS的发生。
虽然脚本资源是最明显的安全隐患,但是CSP还提供了一套丰富的指令集,允许页面控制加载各种类型的资源,例如如下的类型:

content-src:限制连接的类型(例如XHR、WebSockets和EventSource)
font-src:控制网络字体的来源。例如可以通过font-src https://themes.googleusercontent.com来使用Google的网络字体。 frame-src:列出了可以嵌入的frame的来源。例如frame-src https://youtube.com只允许嵌入YouTube的视频。。 img-src:定义了可加载图像的来源。
media-src:限制视频和音频的来源。
object-src:限制Flash和其他插件的来源。
style-src:类似于Script-src,只是作用于css文件。

目前Chrome浏览器已经遵循了这个CSP理念。

cordova项目中,需要在html文件的head内添加 如下的<meta>标签:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'
'unsafe-eval' *">

上面的这个CSP策略,已经允许了基本上所有的请求了,一般只要复制到你的html文件中就可以使用了。

注意:截至本文发表日期,Cordova iOS的版本为3.8,而WhiteList插件最新版1.1.0只支持Cordova iOS 4.0+。
所以对于Cordova开发ios的,暂且使用WhiteList v1.0.0版本。

三、Cordova Android 4.0支持了pluggable WebView
也就是可以以插件的形式更换app的webview的内核。
有名的是CrossWalk这个内核的webview,基于Chromium。

详细请看:https://crosswalk-project.org/documentation/cordova/cordova_4.html
cordova crosswalk插件的地址:https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview

CrossWalk可以解决android参差不齐的生态环境下,原生webview的表现不一致的问题。仅支持Android 4.0以上系统。

欢迎加入Sencha Touch + Phonegap交流群

1群:194182999 (满)

2群:419834979

共同学习交流(博主QQ:479858761
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: