问题标签 [cordova-plugins]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
10134 浏览

xcode - 打包和签名使用 Cordova CLI 构建的 iOS 应用程序时遇到问题

到目前为止,我编译 PhoneGap 应用程序的所有经验都是通过出色的PhoneGap:Build服务完成的。但是,我现在发现自己需要在本地编译,因为我需要使用一个包含二进制文件的插件,这会阻止它被包含在 PG:B 中使用

所以出于这些原因,我需要在本地编译。“伟大的!” 我想,我会使用新的 CLI ......

我已经开发了我的应用程序,我可以通过 Xcode 的 USB 部署在设备上对其进行测试,但是试图获得一个发布版本,并在嵌入配置文件的情况下对其进行签名,一直是一场噩梦。

为了完整起见,这是我所做的一切的基本大纲,除了应用程序开发本身。

对于它的价值,最后一个插件是我必须在本地编译的原因。

现在,这是另一个潜在的活动扳手:这个应用程序实际上是两个应用程序。它是相同的核心代码库,合并到 repo 的两个不同部署分支中,每个客户端一个。因此,每个应用程序都有自己的 id、名称和配置内容。因此,我实际上有多个cordova项目文件夹(每个最终应用程序1个),并且在通过上述步骤创建每个项目后,我删除生成的www文件夹并将其替换为指向存在于外部的共享www文件夹的符号链接这些 phonegap 项目目录。

这是支持的行为;--link-toCLI 允许您通过标志生成带有符号链接的应用程序(请参阅cordova help create详细信息)。但是,这样做似乎有问题;所以我采取了预先完成所有应用程序配置,然后www在一切准备好编译后用符号链接替换生成的文件夹。

此时,我可以部署到 iOS 模拟器或 Android 模拟器,也可以通过 USB 部署到设备,一切正常;我所有的插件都可用并按预期运行。所以我准备编译一个发布版本。安卓很简单。iOS,没那么多。

但是,这是一个 DEV 构建。生成的文件在build/emulator/文件夹中,当我尝试对其进行签名时,我被告知由于 I386 架构而未签名(这表明它是开发版本)。

我试图从cordova CLI 生成一个发布版本。我无法在--release任何地方找到记录的标志,但 CLI 不会抱怨,如果它不能识别标志,它通常会抱怨。

尝试签署此构建会导致相同的问题。


此时,我开始尝试直接在 Xcode 中工作。.mobileprovision据我所知,我已经适当地设置了文件和签名凭据:

签名和配置文件设置的屏幕截图

设置这些值后,Xcode 不再允许我构建:

禁用构建菜单的屏幕截图

所以我被困住了:我别无选择,只能在本地构建,而且我不知道如何构建它以供发布和签名!请帮忙!


此外,如果我尝试嵌入配置文件,则会由于权利问题而失败。我不确定这意味着什么,但我希望这是使用开发版本的结果,解决这个问题也能解决这个问题。


更新1:

这个 SO 问题在一个方面有所帮助。我不知道活动方案(我不太确定这意味着什么,但这是我将鼠标悬停在控件上时的工具提示)作为指定键/等的一部分而发生了变化,但显然它确实发生了变化。将其更改回 iOS 设备,如 iPhone,允许我构建我的项目,甚至存档(据我所知,这意味着它正在创建我需要提交到应用商店的.ipa文件),但我找不到存档文件。它应该在哪里?我可以在 Xcode 的某个设置中定义它吗?

更新 2:

通过摆弄证书和配置文件,我终于能够从 Xcode 创建一个存档,有人告诉我这是一个发布版本(是吗?)。理想情况下,我希望能够从命令行构建,这样我就可以尽可能地自动化它,所以这就是我早上要学习的地方。在这方面的任何建议都将非常受欢迎!

0 投票
0 回答
365 浏览

ios - Cordova/phonegap - 3.4 iOS 日历插件线程警告无法修复

似乎无法弄清楚在哪里修复此警告。我对此很陌生,我不太了解objective-c。

我正在使用来自https://github.com/EddyVerbruggen/Calendar-PhoneGap-Plugin的日历插件

当我将事件添加到日历并按“确定”时,应用程序会中断“

我在 cordova 文档中看到了线程代码,但不确定在哪里添加代码以及如何使用它。

我真的很感激任何帮助,谢谢。

0 投票
2 回答
594 浏览

android - Phonegap插件在android中不起作用

我正在创建 phonegap 应用程序并使用下面的插件来共享和复制链接。

电子邮件作曲家:https ://github.com/hazemhagrass/EmailComposer.git

复制到剪贴板:https ://github.com/VersoSolutions/CordovaClipboard

社交媒体分享:https ://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin.git

当我创建一个 iOS 应用程序时,所有这些插件都可以正常工作。但是当我使用 eclipse 构建 android 应用程序时,复制到剪贴板和社交共享插件不起作用。

请也让我知道是否有任何其他插件在 android 和 iOS 中都支持。

这是我在日志中得到的

在此处输入图像描述

这是我的 config.xml 文件

在此处输入图像描述

提前致谢

0 投票
0 回答
487 浏览

cordova - Cordova 多页应用程序窗口对象在第二页上不起作用

如果我打电话,在单页应用程序上

一切正常。如果我然后通过“a”标签转到另一个页面。等待设备准备好并调用同一行代码没有任何反应。事实上,似乎所有插件都不起作用。在该行代码之前或之后,我没有收到任何控制台消息。如果我删除该行,那么所有控制台消息都会重新开始工作。

这一切似乎都是在升级到科尔多瓦 3.4 后开始的

之后,我能够让 hello world 程序正常工作。我收到调试消息。但是,在我添加以下内容后,它们会停在第二页上。但我已将其简化为对窗口的任何调用。

我正在使用 Mac。在完成了cordova build iOS之后,我将进入platforms文件夹并在xCode中打开ios项目并在我的设备上运行它。

谢谢

狮子座

0 投票
14 回答
75095 浏览

ios - 通过 Cordova config.xml 向 iOS .plist 文件添加条目

我是 Cordova CLI 的新手。

我需要通过 Cordova 以编程方式执行以下步骤。

  1. 在项目 .plist 添加一个新行
  2. 在新行中输入以下值:
  3. :GDLibraryMode类型:字符串(默认):GDEnterpriseSimulation

我想我需要在项目根目录中的 config.xml 文件中执行此操作(或者可能是“平台”文件夹中的那个)。

有人可以向我解释如何通过 config.xml 添加条目,以便在编译时添加上述条目吗?

我正在使用 Cordova 3.3.1-0.42(我知道它不是最新的)。我已经完成了我的项目,一切都很好,我只需要将这个条目添加到 pList 中。


编辑:2/8/21 根据对此问题的评论:

对于迟到的任何人, Cordova CLI 7 及更高版本现在支持在项目 plist 中设置值

0 投票
1 回答
3180 浏览

ios - 使用自定义 Cordova 插件将原生 iOS 事件绑定到 webView

我必须创建一个插件来捕获我的 iOS 应用程序的 Cordova webView 中发生的事件,并在应用程序的本机部分触发操作,反之亦然。

我已按照本教程进行操作,并且效果很好。

当我尝试将它调整到另一个应用程序时(我希望它比教程更通用),它可以从 webView 到本机部分,但不是相反。

我只是想单击导航栏上的按钮来更改我的 webView 的背景颜色。目前,插件的javascript代码似乎没有收到事件,因为只显示了iOS日志。

我所有的代码都在 XCode 中,所以我看不到来自 Web 部件的任何警告/错误。

这是插件的iOS部分:

这是插件的javascript部分:

这是javascript事件监听器:

这是将事件侦听器绑定到插件的 main.js 文件:

最后是objective-C中的插件调用:

谢谢您的帮助!

0 投票
1 回答
1136 浏览

cordova - Cordova/Phonegap moveTo 没有得到根目录

这是一个正在调用的 onSuccess 函数,但该moveTo方法没有产生预期的效果。它应该将我的图像移动到 file:///storage/sdcard0/PhotoscanPhotos/ 但调试警报只显示//PhotoscanPhotos.

有人知道我做错了什么吗?它是 Phonegap 3.1 API 文档的虚拟副本。我的配置文件肯定是正确的。

提前致谢

编辑:为了完整性,其余代码:

0 投票
3 回答
15687 浏览

javascript - Cordova/Phonegap FileTransfer.upload() 错误代码 = 1 (FILE_NOT_FOUND_ERR)

真正令人困惑的是,当我使用手机摄像头拍摄图像时,我使用FileTransfer.moveTo它并根据需要将图像发送到我 SD 卡上的指定文件夹。我还保留了一个图像对象列表localStorage,看起来像这样:

作为我的应用程序的一部分,我使用与 src 属性相同的 image[i].image 来将图像动态添加到列表中,并且效果很好。但是,使用相同的参数 forFileTransfer.upload会给我上述错误。

我的函数几乎是API 文档(Cordova 3.1)的复制品。代码如下:

0 投票
0 回答
977 浏览

javascript - 恢复 Android PhoneGap 应用可能会导致应用长时间无响应

我一直在联系 Phonegap 支持人员,以及比我更有经验的 Android 人员,以及知识渊博的移动 Web 应用程序开发人员,以确定我的应用程序中出现奇怪错误的原因。根据与我交谈过的人的说法,问题可能源于这些地方(Android、PhoneGap 插件或使用 jQuery mobile)。

这是包含 index.html 的文件夹,其中包含我的 Phonegap 应用程序代码: https ://github.com/galenthomasramos/EcigSurvey/tree/master/platforms/android/assets/www

这个应用程序的目标设备是摩托罗拉 Razr M。我使用本地通知插件来全天提供通知。有时单击通知时,我的 onResume 事件函数中的某些代码很晚才被触发。恢复应用程序后,我应该会立即收到并提醒,但我会在差不多一分钟后收到提醒。当我尝试登录我的应用程序(登录屏幕是我的应用程序中出现的第一页)我已正确输入密码但手机无法导航时,会出现更大的问题(相同的症状 - 非常晚的函数调用)到下一页。页面不可能只是重置而不导航到下一页——要么我会收到错误的用户输入警告并要求重试,要么应用程序应该成功导航到下一页。

我应该提到,这些错误似乎只在通过通知访问应用程序时发生,如果我从正在运行的应用程序堆栈恢复应用程序,则不会发生这种情况。

起初我认为可能是在我的应用程序被挂起时,或者可能是 Android 杀死了我的一些后台进程,这些变量在我的程序中被终止,这可能导致这种行为,但是在查看了与 Android 应用程序一起运行的应用程序之后观察内存使用情况和任何数量的垃圾收集,当这种情况发生时,Android 似乎并没有杀死任何东西。

我和其他人谈过 jQuery Mobile 可能是罪魁祸首(显然 jQuery Mobile 的行为因设备平台而异,而且我的 Nexus 4 上似乎没有收到这些错误)并且可能我的页面事件不起作用正确吗?

我的 onResume 事件函数(应该在恢复时触发警报):

阅读暂停事件后可以导航到另一个页面吗?在这种情况下,我可以预见到在暂停事件侦听器中读取任何代码时,应用程序在后台会出现问题……再说一次,如果您不能编写任何代码,为什么 Phonegap 会包含暂停事件函数Javascript代码要使用吗?

我的 onPause 事件功能:

然后我有一堆代码,由我使用的本地通知插件由事件侦听器函数执行。这些事件可以在任何时候发生,如果应用程序在前台或后台......当应用程序在后台时它们当然不会可靠地发生,我需要改变它的工作方式,但我想知道是否有任何这些事件函数中的代码可能会导致问题(我想说是,因为问题似乎只发生在通过通知访问应用程序时)

本地通知事件函数:

触发器:

点击:

取消:

任何想法为什么我的应用程序在从通知中恢复时可能没有响应?

0 投票
0 回答
1058 浏览

cordova - PhoneGap 构建、补水和插件

我正在尝试构建我的第一个 PhoneGap 应用程序,补水功能看起来非常好。但是每次我在 config.xml 中添加插件时启用它,构建都会失败,并显示以下消息:

如果我禁用插件或禁用水合作用,一切都会再次运行。我使用 3.3.0 版和此语法来包含手册中指示的插件:

<gap:plugin name="org.apache.cordova.camera"/>

我尝试了多个插件,一切都以类似的结果结束。有人对我可能做错了什么有任何指示吗?