如何添加 cordova 插件和平台
How to add cordova plugins and platforms
我正在使用 this cordova tutorial 尝试设置 cordova/phonegap 应用程序。我在 Windows 上开发,我安装了 node.js,我在 Node.js 命令提示符下工作。我下载并安装了:
Andorid SDK from here and have added it to PATH
,
downloaded ant and installed it,
Java JDK 也 downloaded 并已安装。
我的 PATH
包含这些:
%ANT_HOME%\bin;%JAVA_HOME%\bin;C:\Program Files (x86)\Android\android-sdk\tools
在 cmd 中输入 android
打开 Android SDK 管理器。
输入 java
显示 java 命令帮助。
输入 ant -version
显示 ant 版本 (1.9.6)。
输入 cordova
显示 cordova 帮助命令。
我使用 npm install -g cordova
成功安装了 cordova,并创建了我的 workshop 目录。然后我尝试添加教程建议的平台和插件。这是 android 平台和设备插件的命令提示符输出:
C:\Users\Roman\All\Work\CriticalID\again>cordova platforms add android
npm http GET https://registry.npmjs.org/cordova-android/-/cordova-android-4.0.2.tgz
npm http 200 https://registry.npmjs.org/cordova-android/-/cordova-android-4.0.2.tgz
C:\Users\Roman\All\Work\CriticalID\workshop>cordova plugin add cordova-plugin-device
Fetching plugin "cordova-plugin-device" via npm
npm http GET https://registry.npmjs.org/cordova-plugin-device
npm http 304 https://registry.npmjs.org/cordova-plugin-device
npm http GET https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-1.0.1.tgz
npm http 200 https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-1.0.1.tgz
正在检查是否安装了平台和插件:
C:\Users\Roman\All\Work\CriticalID\workshop>cordova platforms ls
Installed platforms:
Available platforms: amazon-fireos, android, blackberry10, browser, firefoxos, windows, windows8, wp8
C:\Users\Roman\All\Work\CriticalID\workshop>cordova plugin ls
No plugins added. Use `cordova plugin add <plugin>`.
C:\Users\Roman\All\Work\CriticalID\workshop>cordova build
No platforms added to this project. Please use `cordova platform add <platform>`.
我安装的 None 个平台或插件显示为已安装。 workshop\plugins
和 workshop\platforms
文件夹也是空的。
教程应用程序在我的浏览器和 phone(由 PhoneGap 桌面和 phone 应用程序放在那里)中运行,但是当我尝试更复杂的教程时,例如 [=28 中的第 12 部分=] 需要摄像头 API,然后浏览器(显然)和我的 phone(Error: Camera API is not supported
)不支持摄像头。
编辑
我已经通过使用 git 添加 Android 平台和插件解决了这个问题;解决方案如下。但是,如果我遗漏了什么,请告诉我。
似乎 config.xml
应该处理一些功能,但我一直无法弄明白。
Cordova 5.1.1 的一切
我认为文档很旧,这一直给我带来问题。此外,在使用 Cordova 或通过 PhoneGap 或 PhoneGap 构建从头开始创建应用程序时,某些 config.xml 和文件结构会有所不同。
首先,在使用 Cordova 构建应用程序时,这些代码行似乎不起作用:
cordova platforms add android
cordova plugin add org.apache.cordova.device
cordova plugin add cordova-plugin-device
所有平台和插件都需要通过Git添加。 Android platform here, and a list of plugins here.
因此,例如要获取默认的 Cordova 应用程序,(用于灌输,请参阅上面的问题)将以下内容复制并粘贴到 CMD 中:
cd into your working directory
cordova create workshop com.name.workshop Workshop
cd workshop
cordova platform add https://github.com/apache/cordova-android.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-whitelist.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git
请注意,必须在插件之前添加平台。我添加了 whitelist
因为 config.xml
想要,我还添加了 device
和 console
因为教程告诉我这样做。
现在,如果您键入 cordova platform ls
和 cordova plugin ls
,那么您应该会返回一个非空列表。
为了完整起见,如果您现在想使用相机:
1) 将以下内容复制到 index.html
:
<img id='image' src='' style="position:absolute;margin:5px;left:0px;top:0px;"/>
<button id="test_camera">Camera Test</button>
<script type="text/javascript" src="js/test.js"></script>
2) 创建一个新脚本 test.js
,并将以下内容粘贴到其中。我不喜欢教程创建此函数的复杂方式,这种方式更直接:
var changePicture = function() {
if (!navigator.camera) {
alert("Camera API not supported", "Error");
return;
}
var options = { quality: 50,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: 1, // 0:Photo Library, 1=Camera, 2=Saved Album
encodingType: 0 // 0=JPG 1=PNG
};
navigator.camera.getPicture(
function(imgData) {
$('#image').attr('src', "data:image/jpeg;base64," + imgData);
},
function() {
alert('Error taking picture', 'Error');
},
options);
return false;
};
$("#test_camera").on('click', function() {
changePicture()
})
您可以单独保留 index.js
中的初始化代码。
现在使用 PhoneGap 桌面应用程序和 PhoneGap phone 应用程序在 phone 上测试您的应用程序。我很容易。我为此使用 windows 和 Android,我不知道任何其他系统。
我正在使用 this cordova tutorial 尝试设置 cordova/phonegap 应用程序。我在 Windows 上开发,我安装了 node.js,我在 Node.js 命令提示符下工作。我下载并安装了:
Andorid SDK from here and have added it to PATH
,
downloaded ant and installed it,
Java JDK 也 downloaded 并已安装。
我的 PATH
包含这些:
%ANT_HOME%\bin;%JAVA_HOME%\bin;C:\Program Files (x86)\Android\android-sdk\tools
在 cmd 中输入 android
打开 Android SDK 管理器。
输入 java
显示 java 命令帮助。
输入 ant -version
显示 ant 版本 (1.9.6)。
输入 cordova
显示 cordova 帮助命令。
我使用 npm install -g cordova
成功安装了 cordova,并创建了我的 workshop 目录。然后我尝试添加教程建议的平台和插件。这是 android 平台和设备插件的命令提示符输出:
C:\Users\Roman\All\Work\CriticalID\again>cordova platforms add android
npm http GET https://registry.npmjs.org/cordova-android/-/cordova-android-4.0.2.tgz
npm http 200 https://registry.npmjs.org/cordova-android/-/cordova-android-4.0.2.tgz
C:\Users\Roman\All\Work\CriticalID\workshop>cordova plugin add cordova-plugin-device
Fetching plugin "cordova-plugin-device" via npm
npm http GET https://registry.npmjs.org/cordova-plugin-device
npm http 304 https://registry.npmjs.org/cordova-plugin-device
npm http GET https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-1.0.1.tgz
npm http 200 https://registry.npmjs.org/cordova-plugin-device/-/cordova-plugin-device-1.0.1.tgz
正在检查是否安装了平台和插件:
C:\Users\Roman\All\Work\CriticalID\workshop>cordova platforms ls
Installed platforms:
Available platforms: amazon-fireos, android, blackberry10, browser, firefoxos, windows, windows8, wp8
C:\Users\Roman\All\Work\CriticalID\workshop>cordova plugin ls
No plugins added. Use `cordova plugin add <plugin>`.
C:\Users\Roman\All\Work\CriticalID\workshop>cordova build
No platforms added to this project. Please use `cordova platform add <platform>`.
我安装的 None 个平台或插件显示为已安装。 workshop\plugins
和 workshop\platforms
文件夹也是空的。
教程应用程序在我的浏览器和 phone(由 PhoneGap 桌面和 phone 应用程序放在那里)中运行,但是当我尝试更复杂的教程时,例如 [=28 中的第 12 部分=] 需要摄像头 API,然后浏览器(显然)和我的 phone(Error: Camera API is not supported
)不支持摄像头。
编辑
我已经通过使用 git 添加 Android 平台和插件解决了这个问题;解决方案如下。但是,如果我遗漏了什么,请告诉我。
似乎 config.xml
应该处理一些功能,但我一直无法弄明白。
Cordova 5.1.1 的一切
我认为文档很旧,这一直给我带来问题。此外,在使用 Cordova 或通过 PhoneGap 或 PhoneGap 构建从头开始创建应用程序时,某些 config.xml 和文件结构会有所不同。
首先,在使用 Cordova 构建应用程序时,这些代码行似乎不起作用:
cordova platforms add android
cordova plugin add org.apache.cordova.device
cordova plugin add cordova-plugin-device
所有平台和插件都需要通过Git添加。 Android platform here, and a list of plugins here.
因此,例如要获取默认的 Cordova 应用程序,(用于灌输,请参阅上面的问题)将以下内容复制并粘贴到 CMD 中:
cd into your working directory
cordova create workshop com.name.workshop Workshop
cd workshop
cordova platform add https://github.com/apache/cordova-android.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-whitelist.git
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-camera.git
请注意,必须在插件之前添加平台。我添加了 whitelist
因为 config.xml
想要,我还添加了 device
和 console
因为教程告诉我这样做。
现在,如果您键入 cordova platform ls
和 cordova plugin ls
,那么您应该会返回一个非空列表。
为了完整起见,如果您现在想使用相机:
1) 将以下内容复制到 index.html
:
<img id='image' src='' style="position:absolute;margin:5px;left:0px;top:0px;"/>
<button id="test_camera">Camera Test</button>
<script type="text/javascript" src="js/test.js"></script>
2) 创建一个新脚本 test.js
,并将以下内容粘贴到其中。我不喜欢教程创建此函数的复杂方式,这种方式更直接:
var changePicture = function() {
if (!navigator.camera) {
alert("Camera API not supported", "Error");
return;
}
var options = { quality: 50,
destinationType: Camera.DestinationType.DATA_URL,
sourceType: 1, // 0:Photo Library, 1=Camera, 2=Saved Album
encodingType: 0 // 0=JPG 1=PNG
};
navigator.camera.getPicture(
function(imgData) {
$('#image').attr('src', "data:image/jpeg;base64," + imgData);
},
function() {
alert('Error taking picture', 'Error');
},
options);
return false;
};
$("#test_camera").on('click', function() {
changePicture()
})
您可以单独保留 index.js
中的初始化代码。
现在使用 PhoneGap 桌面应用程序和 PhoneGap phone 应用程序在 phone 上测试您的应用程序。我很容易。我为此使用 windows 和 Android,我不知道任何其他系统。