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

thread warnings in Phonegap/Cordova app

提问人:Pompeyo 提问时间:12/4/2013 更新时间:11/24/2015 访问量:13148

问:

我在 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="[email protected]" 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

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

iPhone Cordova

评论

0赞 Alain Zelink 1/13/2014
为地理定位插件找到任何解决方案吗?我在 phonegap 3.3.0 中遇到了同样的问题,在我找到摆脱警告的方法之前,我不会在生产中使用它。

答:

5赞 Bruno 1/4/2014 #1

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

Apple 不喜欢 Blocked UI,因此如果通话时间超过 10 毫秒,您需要找到一种方法来取消通话。

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

评论

2赞 Alain Zelink 1/13/2014
谢谢布鲁诺。但我绝对不流利地使用 Obj-C。是否有使用工作插件的解决方法?谢谢。