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

原创 2015年07月06日 21:02:12

原文地址:http://blog.csdn.net/lovelyelfpop/article/details/46778687



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 Whitelisthttp请求白名单)
也就是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 * data:; 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


相关文章推荐

[Phonegap+Sencha Touch] 移动开发70 cordova app中使用增强的webview

一、CrossWalk/XWalk(安卓) 安卓WebView在不同版本的安卓系统上表现参差不齐,这种不一致性使开发者非常头疼。虽然安卓4.4开始Google将安卓内置WebView内核更换为了Chr...

[Phonegap+Sencha Touch] 移动开发77 Cordova Hot Code Push插件实现自动更新App的Web内容

地址:https://github.com/nordnet/cordova-hot-code-push 此插件提供了可以使cordova app自动更新web内容的功能机制。 基本上, 你A...

[Phonegap+Sencha Touch] 移动开发17 使用桌面chrome调试安卓设备上的chrome和cordova app(webview)

调试安卓设备上的chrome浏览器:

[Phonegap+Sencha Touch] 移动开发76 让cordova app访问远端网站也能调用cordova插件功能

我相信,应该会有一些cordova开发者想过实现下面这种app: 使用cordova制作一个外壳app,用于浏览服务端部署的网站,这样当服务器上网站升级后,这个cordova app可以立即访问最新版...

[Phonegap+Sencha Touch] 移动开发3、使用Weinre调试PhoneGap/Cordova应用

Weinre 的安装和运行 1、安装weinre cmd执行以下命令 npm -g install weinre 2、运行weinre调试服务器 进入目录C:\Users\xxx\node_m...

[Phonegap+Sencha Touch] 移动开发2、PhoneGap/Cordova初步使用

下面讲的是创建一个PhoneGap项目,然后打包成apk安装包 的一般方法。与以后讲Sencha touch+PhoneGap的开发有少许不同。 1、打开cmd,把盘符转到想要创建项目的目录,比如 ...

[Phonegap+Sencha Touch] 移动开发63 PhoneGap和Cordova的区别

原文:《PhoneGap和Cordova的区别》 Cordova历史发展  2009年 通过iPhoneDevCamp之后,加拿大Nitobi开发了PhoneGap2011年 7月...

[Phonegap+Sencha Touch] 移动开发62 使用GapDebug调试Phonegap/Cordova应用

GapDebug是一款免费跨平台调试工具,用于调试基于Cordova或PhoneGap构建的混合移动应用。此款调试工具集成了Safari Webkit调试器和Chrome开发工具,统一了OS X和Wi...

[Phonegap+Sencha Touch] 移动开发64 Phonegap/Cordova 插件开发

原文:《Cordova 3.x 基础(12) -- Plugin开发》 Cordova提供的功能能够满足一般应用,但是对于复杂的应用或者对性能要求比较严格的应用来说,并不是很理想的。所以就需要在某...

[Phonegap+Sencha Touch] 移动开发37 sencha cmd 5.x须知

Sencha cmd 5.x创建打包ST项目的方法,和4.x的时候有很大的不同,具体可以看
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[Phonegap+Sencha Touch] 移动开发53 Cordova/Phonegap 4(或5) 多了什么?
举报原因:
原因补充:

(最多只允许输入30个字)