PhoneGap InAppBrowser 事件监听器太慢(Android)

Posted

技术标签:

【中文标题】PhoneGap InAppBrowser 事件监听器太慢(Android)【英文标题】:PhoneGap InAppBrowser event listener too slow (Android) 【发布时间】:2014-11-12 05:16:37 【问题描述】:

我们正在使用 AngularJS 和 Ionic 框架创建一个基于 PhoneGap 的应用程序。

这个应用程序是一个商店管理系统,它与使用 OAuth2 的现有网络应用程序相关联,我们在身份验证后遇到 android 重定向问题。

如下设置一个事件监听器,在成功连接或取消时关闭 InAppBrowser 窗口::

    if (runningInCordova) 
        connectWindow.addEventListener('loadstart', function(event) 
            var url = event.url;
            if (url.indexOf("code=") > 0 || url.indexOf("error=") > 0) 

                return callback(url).then(function() 
                    connectWindow.close();
                ,
                function() 
                    connectWindow.close();
                );
            
        );

出于浏览器测试的目的,还定义了一个 localhost 重定向 URI:

http://localhost:8100/oauthcallback.html

ios 上,这可以正常工作,并且 InAppBrowser 会在应该关闭时立即关闭,但在 Android 上,在触发此事件侦听器之前会有延迟。结果是大约 1 秒后显示以下错误消息:

Web page not available
The web page at http://localhost:8100/oauthcallback.html could not be loaded as:
net::ERR_CONNECTION_REFUSED

然后触发事件监听器并关闭窗口。

有什么方法可以让事件监听器更快地触发以避免这个错误?

非常感谢

【问题讨论】:

我在使用 twitter 登录时遇到问题。你是如何配置回调 url 的?我提供了 localhost 和 127.0.0.1,但它无法显示 net::ERR_CONNECTION_REFUSED 消息 对此有何更新/帮助? 你试过使用非本地 url 吗? 您必须在提供程序仪表板和库中更改回调/重定向 uri 以指向非本地 url 嗨,Sam,我想知道你是否可以解决这个问题。你会分享你的解决方案吗? 【参考方案1】:

如果您尝试访问 InAppBrowser 库,但没有在您的 PhoneGap 项目中安装插件,也会发生这种情况。

【讨论】:

以上是关于PhoneGap InAppBrowser 事件监听器太慢(Android)的主要内容,如果未能解决你的问题,请参考以下文章

Cordova/Phonegap 3.3 中的外部链接/InAppBrowser 总是表现得像“_self”

Phonegap inappbrowser 不工作

Phonegap / iOS - 无法使 inAppBrowser 工作

是否可以使用javascript向inappbrowser的工具栏添加按钮并控制其事件...?

如何从 InAppBrowser 中调用 Phonegap 插件?

Cordova/PhoneGap 打开下载的文件 (InAppBrowser)