【问题标题】:Cordova iOS - inAppbrowser - ui freezeCordova iOS - inAppbrowser - 用户界面冻结
【发布时间】:2016-07-14 09:58:57
【问题描述】:

我正在使用两个插件(cordova-plugin-auth-dialog 和 cordova-inappbrowser)来实现我的 cordova ios 应用程序的登录过程。

登录本身在 iPhone 上运行良好,但在 iPad 上却导致 UI 长时间冻结(CPU 使用率为 99% 大约 1 分钟)。这一定是登录引起的,因为只要你登录,应用程序就可以运行。

在 Xcode 中我也可以看到著名的

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

警告。这真的很重要吗?

我使用的是最新版本的cordova和ios平台的4.1.0版本。

你们有什么建议给我吗?我也真的很想有一些方法来使用一些外部工具来调试问题(Safari Debugger,那里并没有对我有用的信息)。

提前致谢!

编辑:添加代码

authDialog.authenticate(URL_TO_LOGIN, function () {
   console.log("success");
   var inAppBrowserRef = cordova.InAppBrowser.open(URL_TO_LOGIN, '_blank', 'location=yes,hidden=yes');
   inAppBrowserRef.addEventListener('loadstart', loadStartCallBack);
   inAppBrowserRef.addEventListener('loadstop', loadStopCallBack);
   inAppBrowserRef.addEventListener('loaderror', loadErrorCallBack);
     defer.resolve();
   }, function (error) {
     console.log("error xxx:", error);
     defer.resolve();
   }, username, password);

【问题讨论】:

  • 如何在代码中使用 inappbrowser 打开页面?请更新您问题中的代码
  • @naitik 添加了代码 sn-p
  • 好的,你可以使用" window.open(URL_TO_LOGIN, "_blank"); "代替" cordova.InAppBrowser.open(URL_TO_LOGIN, '_blank', 'location=yes,hidden=yes') ;" 试试看结果告诉我。
  • @Naitik:它已经快一点了——谢谢。但我需要添加“hidden=yes”,以便最终用户看不到窗口。我猜这个请求以某种方式阻止了用户界面......
  • 这样您就可以删除 hidden=yes 并尝试测试它的性能是否更好。

标签: ios angularjs cordova


【解决方案1】:

以下 sn-p 可能会对您有所帮助。

setTimeout(函数(){ _self.openUrl(url) },300);

【讨论】:

    猜你喜欢
    • 2017-07-11
    • 2016-07-22
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    相关资源
    最近更新 更多