gpt4 book ai didi

ios - Cordova 插件仅在 iOS 第二次打开时出现线程警告。你如何获得插件来初始化onload?

转载 作者:可可西里 更新时间:2023-11-01 05:04:27 24 4
gpt4 key购买 nike

我的 iOS 应用程序中的 Cordova 插件只有在您打开该应用程序后才能工作,通过返回主屏幕关闭它,然后重新打开该应用程序。然后在 XCode 日志中显示一个 THREAD WARNING。

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.

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

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

<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。

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

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

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

希望对您有所帮助。祝你好运。

关于ios - Cordova 插件仅在 iOS 第二次打开时出现线程警告。你如何获得插件来初始化onload?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23662121/

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