- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 phonegap 开发的新手,所以我有几个问题:
1)我正在使用加速度计插件。我在手册中读到我需要在 config.xml 文件中声明插件才能使用它。但是我注意到即使我从 config.xml 中删除了声明
<feature name="Accelerometer">
<param name="android-package" value="org.apache.cordova.AccelListener" />
</feature>
最佳答案
我很确定您仍然可以使用该插件的原因是您编辑了错误的 config.xml
或者没有运行cordova 命令行工具将您的更改传播到正确的config.xml
应用程序实际使用的文件。
有多个config.xml
Cordova 3.x 项目中不同位置的文件。我将尝试向您概述文件的不同位置以及您应该如何与它们交互。请记住,当您使用 CLI ( Command Line-interface ) 时会发生这种情况 - 我通过键入以下内容生成了此目录结构:
cordova create {MyApp}
cordova platform add android ios
cordova plugin add org.apache.cordova.network-information
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git
cordova create MyApp
创建应用程序时,它将创建一个空的项目结构,如下所示:
/myApp/
/www/ # This is where your "cross-platform' files go.
# The build tools copy these files over to the correct
# asset folder for each platform, like /assets/www/ for
# android or just /www/ for iOs. This is where you should
# be doing most/all of your work and is what should
# probably be version controlled.
/platforms/
/android/ # These will only appear after `cordova platform add`
/ios/ # You should generally not touch these file as they are
# recreated quite often, although changes will persist.
/plugins/
/android/ # These will only appear after `cordova plugin add`. They
# pretty much just contain the native and web plugin code
# for all platforms that a plugin supports.
/ios/
/merges/ # This is where you can place platform-specific code that
# you write that will get merged in with your cross
# platform source, see the "customize each platform"
# section of: http://cordova.apache.org/docs/en/3.0.0/guide_cli_index.md.html
/www/
中的文件进行所有更改。 ,这是“跨平台”源代码。此文件夹中的任何内容通常都会被复制并传播到平台级别
www
使用命令行工具时的文件夹(无论是
/assets/www
用于 Android 还是仅
/www/
用于 iOS)。这样,您的应用程序只需要一个源文件夹 - 这是您应该在版本控制下拥有的文件夹。您想要的任何应用程序范围的配置更改都应该对
config.xml
进行。放置在此位置的文件;稍后当你使用这些工具时,这个
config.xml
文件将被复制(有时会使用特定于平台的配置信息进行修改)到每个应用程序的适当位置,例如
/platforms/android/res/xml/config.xml
(安卓)或
/platforms/ios/AppName/config.xml
(适用于 iOS)。
cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-network-information.git
添加加速插件.
/plugins/android.json
中看到这个:
{
"prepare_queue": {
"installed": [],
"uninstalled": []
},
"config_munge": {
"res/xml/config.xml": {
"/*": {
"<feature name=\"NetworkStatus\"><param name=\"android-package\" value=\"org.apache.cordova.networkinformation.NetworkManager\" /></feature>": 1
}
},
"AndroidManifest.xml": {
"/*": {
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\" />": 1
}
}
},
"installed_plugins": {
"org.apache.cordova.network-information": {
"PACKAGE_NAME": "io.cordova.hellocordova"
}
},
"dependent_plugins": {}
}
res/xml/config.xml
(同样,对于 iOS,这会有所不同,因为应用程序级别的配置文件在 iOS 上的位置不同!),并告诉它写
android.permission.ACCESS_NETWORK_STATE 权限到 AndroidManifest.xml (你不会在 iOS 上找到这样的东西,因为不需要权限。)(顺便说一句,写入这些 json 文件的内容是在插件的 plugin.xml 文件中定义的。)
cordova plugin add
.这些权限直接从 plugins/android.json 文件中的任何内容复制。当您 'rm' 插件时,这些权限也会被删除。但是,编辑这些文件是智能的,因为您可以将自定义内容添加到 AndroidManifest.xml 并且它们将保持不变。
{
"file": "plugins/org.apache.cordova.network-information/www/network.js",
"id": "org.apache.cordova.network-information.network",
"clobbers": [
"navigator.connection",
"navigator.network.connection"
]
}
navigator.connection
和
navigator.network.connection
都将映射到
plugins/org.apache.cordova.network-information/www/network.js
中包含的代码.
/www/config.xml
文件。该文件将用于构建
/platforms/android/res/xml/config.xml
和
/platforms/ios/{AppName}/config.xml
,在打包的应用程序运行时由 Cordova 使用。此文件的一部分将用于编辑 AndroidManifest.xml 和 project.pbxprojc 文件(分别适用于 Android 和 iOS。)
<feature name="Accelerometer">
后,您仍然可以在应用程序中使用加速度计。行 - 它们只是从主应用程序范围的 config.xml 重新复制到平台级别的 config.xml 中
/platforms/android/AndroidManifest.xml
直接文件 - CLI 足够智能,不会在自动添加或删除插件权限时删除您的自定义。因此,如果出于某种原因,您需要支持比 Cordova 支持的 Android 版本更低的 Android 版本,您只需更改对象,它就会在您的
cordova plugin add|rm {id}
中持续存在。调用。
关于cordova - 应该在 config.xml 文件中声明 phonegap 插件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19112436/
Example image 如何在 Phonegap 中添加像这张图片这样的 float 气泡通知。 最佳答案 没有您正在寻找的“开箱即用”插件。但是,您可以创建自己的插件或简单地使用 phonega
我正在使用 HTML 和 JS、JQuery Mobile 构建一个应用程序,并使用 PhoneGap Build 进行打包。客户想知道是否可以添加打印功能...有人知道吗?没有 PG Build 打
我已经安装了 Phonegap 使用 $ npm install -g PhoneGap 我也创建了项目。之后我做了 $ PhoneGap build android 它给出了 [phonegap]
我尝试创建 Phonegap 项目,其中需要集成 ASIHTTPRequest 和 JASON 引用, 并出现以下错误 ld: duplicate symbol _SBJSONErrorDomain
我有一个 Phonegap 应用程序,我从早期版本的 Phonegap 开始,我想升级到最新版本。我需要采取哪些步骤来升级它? 我正在寻求一般性答案,但我的具体情况是 Phonegap 1.1.0 -
我已在我的 MAC 电脑(IOS 10.5.8,SDK 3.1.2)上成功安装 PhoneGap。尝试创建一个新的基于 PhoneGap 的应用程序,包含 PhoneGap 框架并将所需的文件复制到
我正在 phonegap 中为三个不同的平台构建一个应用程序:Android、iOS 和 Blackberry。这样做时,我必须检测设备类型,以便我可以在不同平台和不同设备(如 Android Pho
开始在Mac上使用phonegap(Xcode 4,构建iPhone应用程序)我已经阅读了很多有关名为phonegap.plist的文件的内容,包括外部URL的白名单和其他内容。 这是我的问题,我在
所以我有一个运行 Phonegap 1.4.0 的应用程序(不要问),我决定升级到 1.8.1,这样做时 Phonegap 全局变量不再存在,将被替换为实用程序。 所以我转换了每一次出现: var t
我尝试了什么: 我正在开发一个安卓应用程序。在我的应用程序中,我必须打开 -> 向用户显示 Microsoft Office 文档(doc、docx、xls、xlsx、ppt、pptx)内容。为此,我
使用phonegap制作iOS应用时,ChildBrowser插件可以打开一个可以使用phonegap功能的远程页面吗? 例如:在phonegap应用程序中的index.html,调用childbro
我有一个带有 angularjs 的网络应用程序。我想使用 phonegap 将它变成一个移动应用程序 (android)。 我使用了 phonegap 构建:https://build.phoneg
我正在使用 Phonegap build 为每个平台生成可执行文件。每次更改代码时,我都必须在 phonegap build 上上传代码并生成新的 Apk 文件(适用于 android)。我不想在真实
我很生气,这是毫无疑问的,除了明显的可见差异之外,有人报告高度为: $('body').outerHeight(); //1780 与在我的本地 Windows 8 机器上使用 phonegap
我最近使用 phonegap 完成了我的第一个混合应用程序项目。当谈到公开测试时,我有点害怕签名过程。我从这里以及网上的其他地方阅读了许多不同的建议 fragment 来完成这项工作。 以下是如何为
我是 phonegap 的新手,我尝试创建一个简单的 phonegap 应用程序。 使用命令行安装phonegap后:--- 我已经成功创建了项目,但是当我尝试运行 phonegap build io
我正在为 Android 平台制作一个 phonegap 应用程序。在这个应用程序中,我想在多个 html 页面中滑动导航。请告诉我该怎么做。要么在单个 html 页面中完成,要么我必须为此滑动导航创
是否有任何插件可用于 Juce我可以添加哪些库可以同时适用于 IOS 和 android?如果没有,我如何集成 Juce我的电话间隙应用程序中的库? 最佳答案 没有插件。但您可以使用介绍榨汁机来创建不
Phonegap 刚刚推出了一种方法,可以使用以下命令使用本地服务器立即查看您对 phonegap 应用程序的更改: phonegap serve 然后通过下载 PhoneGap Developer
我们对如何集成phonegap插件,然后使用phonegap build构建我们的移动应用程序有一些疑问,这可能吗? 当您使用 Phonegapbuild 构建您的应用程序时,它会为所有受支持的设备构
我是一名优秀的程序员,十分优秀!