代码改变世界

PhoneGap 2.7发布,官方弃用1.9版本

2013-09-05 16:35  张智清  阅读(456)  评论(0编辑  收藏  举报

2013年5月21日Adobe发布PhoneGap 2.7,同时宣布不再支持PhoneGap 2.0之前的版本,其中包括发布还不到一年的1.9版本Ryan Willoughby曾于4月底解释过其理由:

从1.x版本开始,随着PhoneGap的演进,通过一系列的改进和重新设计,我们去掉了Cordova架构。停止对1.9及更早版本的支持,使我们可以简化基础架构并改进PhoneGap Build的性能。

iOS上的变化

除了常规的bug修复,2.7版本还对文件的上传和下载提供了更好的支持。

  • [CB–2537]实现了FileTransfer的流式下载
  • [CB–2190]支持FileTransfer在后台继续上传和下载

Android上的变化

Android上的版本引入了一些与之前版本不兼容的修改。为支持CordovaPlugin,Plugin.java已经弃用。移除了device.name。但最大的问题是WebSQL。Joe Bowser解释说:

这项变化是开发者最为恼火的,也是我们目前正在解决的。很多人在其应用中使用WebSQL。WebSQL这一W3C规范已经弃用,而且不是所有的平台都支持它。在Android 3.x及更高版本之上,Android团队已不再支持WebSQL,这样就无法通过URI打开数据库了。早期Cordova使用了一种变通方案来解决此问题,但是存在很多设计上的问题,而且无法保证与WebSQL以相同方式运行。目前之所以建议大家使用WebStorage API来代替WebSQL,就是这个原因。WebStorage支持跨平台,变化的可能性较小。而且就算WebStorage出了问题,我们也可以修复WebStorage,哪怕这意味着要破坏WebSQL。

备注:

在后来发布的PhoneGap V2.8版开始,创建的项目中的www目录下的Cordova脚本文件直接更名为cordova.js(即没有带-版本号后缀了)。

(之前在V2.3版开始,就将配置文件Cordova.plist转换为新的config.xml来替代了,当时在升级项目时是通过运行bin/cordova_plist_to_config_xml脚本来实现的。)

且配置文件config.xml中不支持<plugin>标签元素了,统一使用<feature>标签设置。

 

咱们又要折腾了

反安装CordovaLib、Cordova.framework和Xcode Templates模板

注:对于PhoneGap 2.x来说,其Xcode Templates已经被删除了。因此如果确定不会使用到旧版的Cordova,则首先要反安装掉它。

1. 运行终端命令,打开窗口

2. 定位到存放有Makefile文件的目录下

3. 命令指示符下输入"make uninstall",回车运行反安装程序。

或者执行以下脚本

打开AppleScript编辑器

复制粘贴以下内容,然后运行。 

-- Licensed to the Apache Software Foundation (ASF) under one

-- or more contributor license agreements.  See the NOTICE file

-- distributed with this work for additional information

-- regarding copyright ownership.  The ASF licenses this file

-- to you under the Apache License, Version 2.0 (the

-- "License"); you may not use this file except in compliance

-- with the License.  You may obtain a copy of the License at

--

--   http://www.apache.org/licenses/LICENSE-2.0

--

-- Unless required by applicable law or agreed to in writing,

-- software distributed under the License is distributed on an

-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

-- KIND, either express or implied.  See the License for the

-- specific language governing permissions and limitations

-- under the License.

set question to display dialog "Uninstall Cordova?" buttons {"Yes", "No"} default button 2 with icon caution

set answer to button returned of question

if answer is equal to "Yes" then

tell application "Finder" to set home_path to home as text

tell application "Finder" to set startup_hd to startup disk as string

-- delete Xcode 3 Template

set source to (home_path & "Library:Application Support:Developer:Shared:Xcode:Project Templates:Cordova")

tell application "Finder"

if exists folder source then

delete source

end if

end tell

-- delete Xcode 4 Template

set source to (home_path & "Library:Developer:Xcode:Templates:Project Templates:Application:Cordova-based Application.xctemplate")

tell application "Finder"

if exists folder source then

delete source

end if

end tell

-- delete CordovaLib (used by Xcode 3 Template, and generating Cordova.framework if need be)

set source to (home_path & "Documents:CordovaLib")

tell application "Finder"

if exists folder source then

delete source

end if

end tell

-- delete Cordova.framework (used by Xcode 4 Template) and its parent directories

set source to (startup_hd & "Users:Shared:Cordova")

tell application "Finder"

if exists folder source then

delete source

end if

end tell

-- delete symlink to Cordova.framework

set source to (home_path & "Library:Frameworks:Cordova.framework")

tell application "Finder"

if exists file source then

delete source

end if

end tell

-- end

display dialog "Cordova uninstalled." buttons {"Goodbye ☹"} with icon note

else

display dialog "Phew!" buttons {"That was close ☺"} with icon note

end if