Phonegap/Cordova 应用程序中的线程警告

Posted

技术标签:

【中文标题】Phonegap/Cordova 应用程序中的线程警告【英文标题】:thread warnings in Phonegap/Cordova app 【发布时间】:2013-12-04 08:38:22 【问题描述】:

我在 iPhone (ios 6) 上编译时收到这两个 线程警告

THREAD WARNING: ['InAppBrowser'] took '260.519043' ms. Plugin should use a background thread.
THREAD WARNING: ['Geolocation'] took '110.953857' ms. Plugin should use a background thread.

这就是我在代码中调用插件的方式:

window.open("http://www.anaddress.com", '_system');

这就是我的 config.xml 的样子:

<?xml version='1.0' encoding='utf-8'?>
<widget id="my.id" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>Hello Cordova</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <access origin="*" />
    <preference name="AllowInlineMediaPlayback" value="false" />
    <preference name="AutoHideSplashScreen" value="true" />
    <preference name="BackupWebStorage" value="cloud" />
    <preference name="DisallowOverscroll" value="false" />
    <preference name="EnableViewportScale" value="false" />
    <preference name="FadeSplashScreen" value="true" />
    <preference name="FadeSplashScreenDuration" value=".25" />
    <preference name="HideKeyboardFormAccessoryBar" value="false" />
    <preference name="KeyboardDisplayRequiresUserAction" value="true" />
    <preference name="KeyboardShrinksView" value="false" />
    <preference name="MediaPlaybackRequiresUserAction" value="false" />
    <preference name="ShowSplashScreenSpinner" value="true" />
    <preference name="SuppressesIncrementalRendering" value="false" />
    <preference name="TopActivityIndicator" value="gray" />
    <preference name="GapBetweenPages" value="0" />
    <preference name="PageLength" value="0" />
    <preference name="PaginationBreakingMode" value="page" />
    <preference name="PaginationMode" value="unpaginated" />
    <feature name="LocalStorage">
        <param name="ios-package" value="CDVLocalStorage" />
    </feature>
    <feature name="Notification">
        <param name="ios-package" value="CDVNotification" />
    </feature>
    <feature name="Geolocation">
        <param name="ios-package" value="CDVLocation" />
    </feature>
    <feature name="InAppBrowser">
        <param name="ios-package" value="CDVInAppBrowser" />
    </feature>
    <author email="mail@exam.de" href="http://www.example.com">Me
    </author>
    <content src="index.html" />
    <preference name="fullscreen" value="true" />
    <preference name="webviewbounce" value="true" />
</widget>

当然,我使用 cordova CLI 安装了插件:

$ cordova plugin add org.apache.cordova.inappbrowser

任何帮助将不胜感激,谢谢!

【问题讨论】:

地理定位插件有什么解决方案吗?我对 phonegap 3.3.0 也有同样的问题,在找到消除警告的方法之前,我不会在生产中使用它。 【参考方案1】:

查看Phonegap Documentation 并搜索“线程” 他们解释说您可能希望在后台运行线程而不是主线程。

Apple 不喜欢 Blocked UI,因此如果通话时间超过 10 毫秒,您需要想办法取消通话。

虽然您没有收到错误,但只是警告。

【讨论】:

谢谢布鲁诺。但我绝对不会流利使用 Obj-C。是否有使用工作插件的解决方法?谢谢。

以上是关于Phonegap/Cordova 应用程序中的线程警告的主要内容,如果未能解决你的问题,请参考以下文章

PhoneGap / Cordova 应用程序中的文档扫描

IOS/android + phonegap/cordova框架中的返回键

iOS - 如何使用 phoneGap / Cordova 中的参数调用 writeJavascript

PhoneGap/Cordova 设备未准备好

适用于 iOS 的 fileOpener2 Phonegap/cordova 插件中的正确文件路径

Phonegap/Cordova 无法下载到 Android 中的子文件夹