gpt4 book ai didi

android - 没有Phonegap构建的Android Phonegap应用

转载 作者:行者123 更新时间:2023-12-02 16:39:38 25 4
gpt4 key购买 nike

至少在Android平台上,我将PhoneGap 1.x应用程序升级到Phonegap 3.0时遇到了很多问题(我还没有开始升级iOS版本)。我认为,如果我将所有这些内容结合在一起进行问答,那么这可能会对很多人有所帮助。

所以问题是:将现有应用程序升级到Phonegap 3.0时需要注意什么?

这是一本高级手册,详细介绍了一些细节。我正在为Mac用户介绍该过程,但是尽管命令和工具可能有所不同,但Windows的原理是相同的。

最佳答案

预先警告...

首先,请勿打扰官方文档升级手册。这只会帮助您从1.0升级到1.1,然后从1.1升级到1.2,然后从1.2升级到1.3,依此类推。如果您想跳过多个版本,则不知道自己是否做对了。因此,在升级时,请从头开始创建一个新项目。

此外,请继续前进以确保您不会陷入困境:如果3.0之前的Phonegap应用程序使用自定义插件,则如果要升级,请非常仔细地考虑。向前滚动到“当心定制插件”以了解原因。

逐步

话虽如此,这是一步一步的过程,以行分隔。

1.命令行

Phonegap 3.0仅涉及命令行工具。它看起来比实际要可怕得多。您只需要安装一些将在此处使用的工具(通常是在命令行中输入命令)。

要了解的最重要的常规命令是:

//For Mac and Windows (on Windows, replace slashes by backslashes)
cd mySubfolder //Go to the subfolder "mySubfolder"
cd /MyTopLevelFolder/SomeOtherSubfolder //Go to any folder using the entire address

//Show a list of files and subfolders where you currently are
dir //On Windows
ls //On Mac

2.在正确的位置

命令行工具最关键的方面是,您始终必须注意 ,当前所在的目录。仅当您在该应用程序的主文件夹中时,才告诉Phonegap构建和部署应用程序。

通常,要对Phonegap项目执行操作,需要使用以下命令导航到项目的主目录:
cd /Users/yourself/thePathToYourWorkspace/YourCurrentPhonegapProject //On Mac
cd D:\ThePathToYourWorkspace/YourCurrentPhonegapProject //On Windows

3.启蒙的道路

PS:为确保安装的工具正确运行,有时您必须告诉计算机,如果它无法在当前目录中找到文件,则应在许多其他目录中查找。您编辑称为 路径变量的内容。在别处查找,虽然不太难,但是Windows和Mac却有所不同。

4.首先获取工具箱的工具箱

首先, basic docs可以。您下载并安装了 node.js (这是其他工具将要使用的工具),然后使用它来安装phonegap/cordova 命令行工具
//Like so, for Mac
$ sudo npm install -g phonegap
//Note: the "sudo" bit is needed to install a number of necessary files in folders that Apple protects from direct user editing

从现在开始,您可以使用“phonegap”命令为您的项目执行许多任务。

5.打开工作区

您需要做的第一件事是创建一个工作区,这是所有项目的 主文件夹的通用词(您也可以使用Windows资源管理器,Finder或任何其他用户友好的工具来执行此操作)。

特别是对于Windows,请尝试确保您可以键入该文件夹的整个路径而不使用空格。因此,永远不要将工作空间放在“我的文档”之类的位置,尤其是因为它是C:\Documents and settings\John Doe\“的子目录,而应该尝试诸如“D:\Workspace\”之类的东西。

如果您已经将Dropbox用于其他用途,并且更改Dropbox文件夹的位置也不太麻烦,请考虑将其用于工作空间的自动备份。只需将Dropbox文件夹放在D:\或其他磁盘的根目录中即可。然后将Workspace添加为Dropbox的直接子文件夹。

如果在开发过程中碰巧正在同步文件,则在开发过程中偶尔使用Dropbox可能会阻碍您。但是结果是您可以自动备份文件的许多版本:当天的所有版本,昨天的某些版本,以前每天的一个版本。

6.创建项目

接下来,您使用cd命令在命令行控制台中转到工作区目录。在那里,您告诉Phonegap使用以下命令放置空应用程序的基本结构
$ phonegap create hello com.yourCompanyName.yourAppName HelloWorld

这将创建一个文件夹HelloWorld,并在其中包含一些子目录,这些子目录包含作为应用程序主干的文件。

7.将其悬垂在脚手架上

然后,您开始填充此结构。通常,您的应用程序将是一堆HTML,CSS和Javascript文件。这些放在主www文件夹中。该文件夹还包含config.xml文件,该文件包含您的应用程序的许多设置,例如使用的图标,显示的名称,是否显示Android状态栏,要列入白名单的域等。

Phonegap将这些文件合并在/www目录中,因此您可以将所有“可编辑”的内容放在一起。如果您不希望自己的应用程序像插件那样做任何花哨的事情,那么您就很好了。

8.将正确的方式列入白名单

如果您的应用程序的任何部分实际上访问了互联网(即使仅是Google Analytics(分析)之类的东西),则您必须告诉Phonegap将适当的域名“白名单”。如上所述,这是使用MyProject\www\config.xml中的标签完成的。

这是一项棘手的业务,因为在此问题上Phonegap难以处理平台之间的差异。

对于Android(以Google Analytics(分析)为例),将您的域添加到白名单中,如下所示:


您两次添加此域的原因是,许多在线服务都以简单的未经验证的http://协议(protocol)开头,但是其某些功能随后可能会从同一域中的安全https://地址获取或发送代码。

星号很重要,因为您希望能够从** www。** google-analytics.com以及主要google-analytics.com或任何子域下载脚本和其他内容。

9.插入附加功能

如果您的应用程序需要特殊功能(Android会要求用户允许的功能,例如访问您的电话,通讯录,相机或加速度计),那么您需要在应用程序项目中安装插件。

在文档中查看here,了解如何执行此操作。

另外,请确保在config.xml中添加一行,以告诉Phonegap不要请求任何不必要的权限:
    <preference name="permissions" value="none" />

文档说,这意味着您只要求一个许可(网络访问),但这不是真的。示例:如果您已安装相机插件,则无论您是否添加上述value = none首选项标签,应用程序都会向用户询问相机访问权限。其他所有功能/权限相同。

10.注意自定义插件

另外,这似乎是Phonegap中的错误,无论您使用什么插件和权限设置,应用程序始终会尝试获取其他三个权限:RECORD_VIDEO,ACCESS_COARSE_LOCATION和ACCESS_FINE_LOCATION。

Phonegap只是将这些内容放入Android list 中,就像您在某处指定了该名称一样。当您构建要实际发布到应用商店中的应用时,您将需要解决此问题。方法:您在上次构建之后但在签署并释放软件包之前立即编辑AndroidManifest.xml。

这样,您就可以获得这些讨厌的权限。但是,每次将新的应用程序版本上传到应用程序商店时,您都必须重复此操作!

除了标准插件外,Phonegap一直有大量的第三方自定义插件。这些在Phonegap 3.0中的安装方式与以前完全不同。已经知道演习的懒惰专家说:“这与安装核心插件一样”,但是没有人愿意在任何地方举一个例子。

如果您知道如何将3.0之前的插件安装过程转换为3.0+的过程,请添加注释,我将在本手册中进行复制粘贴。

准备开始测试应用程序时,请先连接设备(或安装仿真器)。这些命令将是最有用的,而且并非所有文档都记录清楚。
$ phonegap build android //This builds a test app, but doesn't run it
$ phonegap run android //This builds the test app AND runs it on device/emulator

然后,当应用程序完全满足您的要求并准备将其放入应用程序商店时,您需要采取一些最后的步骤来创建可用于商店的应用程序包(.apk)。

您需要安装“ant”。就我而言,安装所有其他东西意味着ant也会也自动安装,您很可能会遇到这种情况。 Ant是构建软件包的工具(我的推论是愚蠢的,不是经过验证的事实)。

11.转到 Ant 去的地方

到目前为止,您一直在命令行控制台中从项目的主目录中射击命令。但是,现在,您将要使用通过这些命令创建的Android apk,并且“ant”不知道,因为“phonegap”会在哪里找到这些命令。

因此,转到子子目录...
cd platforms/android //This is a subdir of blabla/workspaces/myproject.

这是您制作的HTML/CSS/Js应用程序的Android应用程序的Java native “包装器”的位置。

12.准备发布

如果您需要对应用程序进行最后修改(例如从AndroidManifest.xml中删除奇怪的权限请求),请立即进行。请确保在/platforms/android文件夹中而不是/platforms/android/bin文件夹中编辑AndroidManifest.xml。

由于Phonegap中的错误,您可能必须进行一些修改:
  • 删除不需要的权限请求
  • 手动设置版本代码(即使您在config.xml中指定不同,也可以设置Phonegap sets it to 1)


  • 13.释放 Ant

    如果您确实准备好将自己的东西放到应用商店中,请启动此命令。准备好出错:您一次处理这些步骤比将整个if-then过程放入本手册要容易得多。
    ant release

    完成ant后,您应该在/Platforms/Android/bin文件夹中找到一个名为YourAppName-release.apk的文件。这是您可以上传到Google Play的文件。

    14.“ Ant 释放”可能存在的问题...

    A.您的应用程序需要一个私钥

    key 存储在专用 keystore (文件)中。如果这不是您的第一个应用程序版本,请从存储它的任何位置获取该东西,并将其放在一个简单且易于键入的位置,例如D:\Developer\Keystores。如果这是您的第一个应用程序版本,请创建一个 key 。

    B. Ant 找不到您的 key

    Ant不知道在哪里寻找此 keystore ,因此您需要在platforms/Android目录中编辑一个文件,以将其指向正确的方向。该文件称为ant.properties。使用纯文本编辑器添加以下属性:
    //Point it to the right directory:
    key.store=/Users/Me/Dropbox/Developer/Keystores/keystoreForMyFirstApp //For Mac
    key.store = D:\Dropbox\Developer\Keystores\keystoreForMyFirstApp //For Windows

    //This describes the name of your signing key, as stored in the keystore
    key.alias=FirstKey

    您现在可能已准备就绪来将apk文件放入Google Play或其他一些Android商店中。我还没有穷尽所有方法,但是这些步骤应该可以帮助您。欢迎发表评论!

    关于android - 没有Phonegap构建的Android Phonegap应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18787816/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com