Cordova 插件仅在 iOS 中第二次打开时有效,并出现线程警告。如何让插件初始化 onload?

2023-12-11

我的 iOS 应用程序中的 Cordova 插件仅在您打开应用程序、返回主屏幕将其关闭,然后重新打开应用程序后才起作用。然后 XCode 日志中会显示一条线程警告。

2014-05-14 14:00:38.062 TLEMobile[28819:60b] THREAD WARNING: ['InAppBrowser'] took '192.306885' ms. Plugin should use a background thread.
2014-05-14 14:01:18.919 TLEMobile[28819:60b] THREAD WARNING: ['Notification'] took '39.698975' ms. Plugin should use a background thread.

是什么原因造成的?如果我真的需要将所有插件设置为后台线程,你该如何设置?

我已将此参数添加到 ios 的 config.xml 中,以强制插件在打开时加载,但这似乎不起作用。

<param name="onload" value="true" />

我根本不明白。我尝试过重新安装整个平台。单独删除所有插件并将它们放回去,我仍然遇到同样的问题。仅当应用程序进入后台然后重新启动时,插件才会起作用。这是我启动应用程序时最近构建到 ios 的代码。插件似乎在启动时加载,但随后无法访问。

2014-05-22 15:39:40.817 TLEMobile[5199:60b] Multi-tasking -> Device: YES, App: YES
2014-05-22 15:39:40.875 TLEMobile[5199:60b] Unlimited access to network resources
2014-05-22 15:39:41.131 TLEMobile[5199:60b] [CDVTimer][device] 0.559986ms
2014-05-22 15:39:41.136 TLEMobile[5199:60b] [CDVTimer][notification] 0.389040ms
2014-05-22 15:39:41.143 TLEMobile[5199:60b] [CDVTimer][inappbrowser] 3.835022ms
2014-05-22 15:39:41.149 TLEMobile[5199:60b] [CDVTimer][socialsharing] 1.318038ms
2014-05-22 15:39:41.153 TLEMobile[5199:60b] [CDVTimer][TotalPluginStartup] 23.202002ms
2014-05-22 15:39:41.659 TLEMobile[5199:60b] Resetting plugins due to page load.
2014-05-22 15:39:41.664 TLEMobile[5199:60b] IAB.close() called but it was already closed.
2014-05-22 15:39:45.843 TLEMobile[5199:60b] Finished load of: file:///var/mobile/Applications/220DD603-0644-4290-AE21-F9B6041D8408/TLEMobile.app/www/index.html#/tab/home
2014-05-22 15:39:54.914 TLEMobile[5199:60b] THREAD WARNING: ['Device'] took '14.032959' ms. Plugin should use a background thread.
2014-05-22 15:39:55.033 TLEMobile[5199:60b] THREAD WARNING: ['Notification'] took '100.118896' ms. Plugin should use a background thread.
2014-05-22 15:40:00.716 TLEMobile[5199:60b] THREAD WARNING: ['Notification'] took '5541.863037' ms. Plugin should use a background thread.

我有同样的问题。今天我找到了适合我的案例的解决方案。

问题出在 js2native 桥上。 Cordova 有不同的方法与本机库通信(桥接模式):

  • XHR 带、不带或可选有效负载;
  • 带或不带负载的 iframe 哈希值;
  • iframe 导航。

在 cordova.js 中,您可以找到 iOSExec 函数。对于 iOS(iOS 5 除外),桥接模式设置为 IFRAME_NAV。

以前的开发人员在项目设计阶段犯了几个错误 - 其中之一是视图更改时整个内容被删除。还有科尔多瓦。因此,cordova 会出现一些错误循环,并且插件无法正常工作。

解决方案是强制使用 XHR 桥接模式。我已在我的 deviceready 回调中插入下一个代码:

cordova.exec.setJsToNativeBridgeMode(cordova.exec.jsToNativeModes.XHR_NO_PAYLOAD);

我希望这能帮到您。祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cordova 插件仅在 iOS 中第二次打开时有效,并出现线程警告。如何让插件初始化 onload? 的相关文章

  • iOS 视图控制器内存在被关闭后未释放

    当用户单击按钮时 它会显示一个带有两个视图控制器的新选项卡栏视图控制器 我是这样做的 ACLevelDownloadController dvc ACLevelDownloadController alloc initWithNibName
  • 为什么在授予用户权限时,UIUserNotificationType.None 在当前设置中返回 true?

    我正在编写一种方法来检查当前用户设置是否包含某些通知类型 当检查当前设置是否包含 UIUserNotificationsType None 时 无论授予权限还是拒绝权限 它都会返回 true 有谁知道这是为什么吗 func register
  • Xcode 调试器 - 如何在 CPU 指令级别单步执行

    这绝对是令人着迷的 但我对编译器如何巧妙地将 C 代码转换为机器指令感到着迷 由于我对某些指令有点模糊 因此如果我能够在单个机器指令级别 低于 C 语句级别 可能会生成多个 CPU 指令 观察已编译程序的操作 将会很有帮助 换句话说 我可以
  • 从命令行调试 iOS 应用程序构建

    我正在通过命令行构建 iOS 应用程序 但在调试它时遇到问题 如果我使用 XCode 进行构建 它会让我在设备上 构建和调试 而不会出现任何问题 但现在 我不知道如何使用 gdb 在设备上启动它并逐步执行它 如果我尝试 添加自定义目标 可执
  • React Native glog iOS:未知类型名称“_START_GOOGLE_NAMESPACE_”

    我已经构建了一个 React Native 的 Android 项目 它运行良好 然后我开始了 iOS 部分 我正在使用react native cli 2 0 1react native 0 60 4和Xcode 10和Mac OS Mo
  • 在带有 Storyboard 的 XCode 4 中以模态方式推送视图时,出现“对开始/结束外观转换的不平衡调用”警告

    在网上进行了一些研究但没有成功后 我来这里向您询问有关我的警告的问题 实际上 我有一个带有导航控制器的视图 V1 我想在 V1 完成加载时推送模态视图 V2 所以我用performSegueWithIdentifier方法 我正在使用故事板
  • 如何防止Apple Watch进入睡眠状态?

    我们正在开发一个 Apple Watch 项目 但如果不被打扰 手表就会进入睡眠状态 有什么办法可以阻止它进入睡眠状态吗 据我所知和有关该主题的其他搜索 目前还没有api可通过编程方式启用或禁用 Apple Watch 的睡眠模式
  • 在iOS上,“添加到主页”缓存保存在哪里,如何清除它?

    我正在 iPad iOS v7 上制作一个 html5 游戏 当我将其添加到主页时 它非常顽固地释放缓存 如果我在 Safari 中查看它 这会按照您所期望的方式工作 如果我刷新一次或两次 页面就会以最新状态缓存 但在主页上却是另一回事 它
  • 推入 UINavigationController 时隐藏 FBFriendPickerViewController 导航栏

    介绍一个实例FBFriendPickerViewController using presentViewController animated completion 非常简单 该类似乎是针对该用例的 但是 我想推送一个实例FBFriendP
  • 如何恢复消耗品应用内购买?

    我正在开发一款 iOS 游戏 用户可以通过应用内消耗品购买一定数量的内部货币 比如 1000 金币 如果用户想将余额从一台设备转移到另一台设备 如何恢复消耗品购买 在苹果的文档中 它说我们必须使用我们自己的服务器 但是如何获取用户的Appl
  • 以编程方式触发iOS摇动事件

    如何以编程方式触发 iOS 中的摇动事件 我尝试过以下方法 但它总是崩溃 void shake NSLog TEST UIMotionEventProxy m NSClassFromString UIMotionEvent alloc in
  • Xcode 中的 iOS 9 警告 - 此文件设置为针对早于项目部署的版本进行构建。功能可能有限

    我刚刚将我的 Mac 更新到最新的操作系统 并将 Xcode 更新到最新版本 现在我收到此警告 但我不知道该由谁来删除它 也不知道它的真正含义是什么 有人可以向我解释一下吗 Thanks Select Main storyboard in
  • 我的游戏中应该有多少个视图控制器?

    我开始使用 spritekit 构建我的第一个游戏 现在我只有一个视图控制器来呈现开始屏幕场景 override func viewDidLoad super viewDidLoad let scene StartScreenScene C
  • 架构armv7的重复符号

    尝试在我现有的应用程序中使用 Layar SDK 时出现以下错误 我该如何解决这个问题 Ld Users pnawale Library Developer Xcode DerivedData hub afxxzaqisdfliwbzxbi
  • 防止 AlertView 被解雇

    任何人都可以帮助我防止在其按钮单击事件上解雇警报视图吗 我有一个 textview 作为我的alertView 的子视图 如果 textview 值为 nil 我不想关闭它 因为这是一个非常老的问题 但我得到了一个解决方案 并且如果其他开发
  • iOS 循环对象的属性并添加操作

    我有一个具有几个类似属性的类 UISliders 我想添加用户开始和结束使用每个滑块时的操作 每个滑块都将链接到同一个选择器 因此我考虑只是迭代它们 而不是编写 10 个几乎相同的代码块 问题是 最有效的方法是什么 我尝试过这样的事情 在运
  • 超类与类SpecificationPolicy不匹配

    我得到了一个superclass mismatch for class SpecificationPolicy尝试安装或升级某些brew 软件包时出错 例如 更新安装 supabase CLI 时 brew install supabase
  • 指定访问组时出现 KeychainItemWrapper 错误

    相当长一段时间以来 我一直在使用 KeychainItemWrapper 的 ARC 版本成功读取和写入私有钥匙串项目 我现在正在努力将我的 iOS 应用程序转换为使用共享访问组 以便我的 2 个共享相同应用程序前缀的应用程序可以访问钥匙串
  • git 提交错误:检测到大文件

    您好 我正在为 ios 8 1 开发一个应用程序 xcode 我已经使用 googleMaps 框架来实现自动完成功能 当我尝试在 Git 中推送我的项目时 我收到大文件检测错误 后来尝试使用 git lfs 并跟踪 git 检测到的文件
  • 分发内部业务 IOS 应用程序

    我遇到了 IOS 应用程序分发的一个令人困惑的部分 因此 我需要简单细分一下我的限制 即仅将我的应用程序分发给我的员工 同事或任何被视为 内部 的人 这是表明我不希望该应用程序出现在应用程序商店中的另一种方式 我的情况是我为几家公司开发 他

随机推荐

  • 在 JavaFX 中同步倒计时器的最佳方法

    我的程序需要九个倒计时器 定时器由用户启动 在我的实现中 我为每个启动的计时器创建一个计时器类 定时器类使用时间线 根据计时器的启动 秒数是异步的 我不知道如何继续 我的第一个想法是仅使用 1 个时间线来进行所有倒计时 我会将所有字符串属性
  • 如何使用 Oracle 的 PHP 制作图表

    我想使用 php 创建一个图表 数据来自 oracle 我没有找到使用oracle作为数据库的例子 大部分都是来自mysql 数据是这样的 I have made this code but it s not working its sho
  • Mockito WrongTypeOfReturnValue:findById() 无法返回布尔值

    我正在尝试使用 Mockito 通过 JUnit 测试来测试以下方法 Override public List
  • Subversion 与 SourceSafe 的性能对比

    我们是一个由 5 名开发人员组成的分布式团队 致力于相当大的集成项目 我们目前使用 SourceSafe 是的 我know它很糟糕 但直到最近它才起作用 我们一直使用它 我们最近最大的问题变成了性能 签入和签出项目需要很长时间 我们发现自己
  • 我应该输入类型吗?

    创建变量时应该指定类型吗 仅仅声明关键字 var 有什么缺点吗 这两者有什么区别吗 var a 0 int a 0 优点缺点 ONGOING WORK 最佳实践 推荐使用var or final关键字 不指定类型注释 并隐式推断类型已知局部
  • 使用pyHook获取鼠标坐标以便稍后播放

    我正在编写一段代码来使用 pyHook 收集鼠标单击信息 然后使用 win32api 来访问单击函数 本质上 我试图使用鼠标来记录点击模式 以便稍后记录和回放 这是我现在的代码 import win32api win32con time w
  • 如何让网络工作者同时执行多项任务?

    我试图让 Web Worker 管理其状态 同时服务多个异步请求 工人 ts 文件 let a 0 this is my worker s state let worker self as unknown as Worker worker
  • 在 shell 中将星号转义为 Java 命令行参数

    我在 shell 中使用星号作为 Java 命令行参数时遇到了问题 我可以将这个问题的描述简化如下 首先 有一个简单的 java 程序 它打印命令行参数 public class CmdArgsTest public static void
  • C++ long 到 double 的可移植转换

    我需要准确地将长表示位转换为双精度 我的解决方案应可移植到不同的体系结构 能够跨编译器成为标准 如 g 和 clang 也很棒 我正在编写一个快速近似来计算 exp 函数 如建议的那样这个问题的答案 double fast exp doub
  • 使用jquery AJAX提交表单[重复]

    这个问题在这里已经有答案了 我正在尝试使用 jQuery ajax 提交表单 但我的数据没有发布到 PHP 它返回空数组 POST array 这是我的代码 这是我的表格
  • 参数嗅探

    假设我们有一个具有 6 个参数 性能不佳的存储过程 如果六个参数之一传输到存储过程中的局部变量 是否足以禁用参数嗅探 或者是否有必要将传递到存储过程的所有 6 个参数传输到存储过程中的局部变量 根据 Paul White 的评论 将变量分配
  • 如何在中国访问谷歌地图API

    我正在使用 google 地图 api 来获取我的 IBM Mobilefirst 项目中的用户位置 它在除中国之外的所有国家 地区都按预期工作正常 我知道这是因为中国已阻止在其国家 地区访问 google api 是否有任何解决方法我可以
  • 文本到语音转换

    我们正在制作 iPhone 应用程序 客户希望通过语音消息进行提醒 要求是用户设置他们想要提醒的时间和文字 使用文本 我将转换为语音并在触发提醒时播放音频文件 为此 我计划使用谷歌服务 播放这些文本并下载相同的音频文件 NSString u
  • Ruby on Rails - 是否可以通过 /app/assets/images 中的表单保存图像?

    我正在为一家销售二手车的小商店开发一个小型 Rub y on Rails 应用程序 该网站包含所有可用汽车的列表 包括汽车的图像 店内最多有20辆车 我读到 将图像直接保存在数据库中并不是最佳实践 最好使用 Amazon Web Servi
  • 字典格式的键错误“0”

    我仍然是 Python 的初学者 我想知道为什么会这样 dict dict 0 123 a 0 if dict format a format a 1 print True 给我一个关键错误 0 但不是这个 dict dict 0 123
  • 谷歌地图在每个外部链接位置显示多个标记点击而不刷新页面

    我想显示 Google 地图以固定每个位置的多个商店 例如 位置是 Chennai Trichy 班加罗尔 海得拉巴 如果我单击链接钦奈 地图将仅显示钦奈的多个商店 如果我点击 Trichy 链接 地图将仅在 Trichy 中显示多个商店
  • 使用 Outlook 日历 REST API 设置活动组织者

    我正在使用 Outlook REST API 创建事件并发送邀请 基于this文档 我对登录用户进行身份验证 并通过请求的授权标头及其内容上的 json 格式事件发送其承载令牌 如果我将 组织者 设置为另一用户而不是经过身份验证的用户 并将
  • 退出时如何保存 Activity 的状态?安卓

    我有一个基本的应用程序 其中包含文本输入 旋转器输入和第二个旋转器输入 其数组取决于 选项 菜单中更改的设置 目前 当我在应用程序中按 Home 或按 Return 时 我要么返回桌面 要么循环返回最近输入的旧输入 如何防止我的应用程序打开
  • ascx 用户控件中的事件处理

    从用户控件到父控件 页面通信事件的最佳实践是什么我想做类似的事情 MyPage aspx
  • Cordova 插件仅在 iOS 中第二次打开时有效,并出现线程警告。如何让插件初始化 onload?

    我的 iOS 应用程序中的 Cordova 插件仅在您打开应用程序 返回主屏幕将其关闭 然后重新打开应用程序后才起作用 然后 XCode 日志中会显示一条线程警告 2014 05 14 14 00 38 062 TLEMobile 2881