【发布时间】: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 并尝试测试它的性能是否更好。