小桥流水丿小溪

前端爱好者 学渣一枚 无聊写些东西

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

原文地址: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。


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

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

二、Cordova插件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
上一篇[Phonegap+Sencha Touch] 移动开发52 安卓原生emoji支持的研究
下一篇[Phonegap+Sencha Touch] 移动开发54 初次使用Android Studio遇到的2个问题
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭