Cordova InAppBrowser打开,但页面已加载到主页面中

汤玛斯·费法尔(TomášFejfar)

我们有Sencha Touch应用程序。它显示各种内容,包括带有应用程序外部链接的页面(指向不同的Web服务器)。我们所做的是添加了一个inappbrowser插件来处理链接。

this.getItemsDetail().element.on('tap', function(event, target) {
        event.preventDefault();
        window.open(target.href, '_blank');
        console.log('tap');
    }, this, {delegate : 'a'});

这有效-记录了“点击”。子浏览器打开。问题是有时候事件“掉线”,错过了浏览器并加载到主Web视图中。我设法在inappbrowser类中切换了debug。日志在底部。

问题是此问题不一致。有时很难复制。您必须尝试单击,然后它会发生。我认为核心是

2013-11-18 14:11:18.362 CDVWebViewDelegate: Navigation started when state=1
2013-11-18 14:11:18.363 Failed to load webpage with error: CDVWebViewDelegate: Navigation started when state=1

我不知道该消息到底是什么意思。从代码看来,“状态1”为“ STATE_WAITING_FOR_LOAD_START”

typedef enum {
    STATE_IDLE,
    STATE_WAITING_FOR_LOAD_START,
    STATE_WAITING_FOR_LOAD_FINISH,
    STATE_IOS5_POLLING_FOR_LOAD_START,
    STATE_IOS5_POLLING_FOR_LOAD_FINISH,
    STATE_CANCELLED
} State;

但仍然-我不确定我在做什么错以及如何以“正确”状态加载网页。

16.285 tap
16.300 webView shouldLoad=1 (before) state=0 loadCount=-1 URL=http://spokendata.com/
16.300 webView shouldLoad=1 (after) isTopLevelNavigation=1 state=1 loadCount=0
16.301 webView didStartLoad (before). state=1 loadCount=0
16.301 webView didStartLoad (after). state=2 loadCount=1 fireCallback=1
16.465 webView didFinishLoad (before). state=2 loadCount=1
16.466 webView didFinishLoad (after). state=0 loadCount=0 fireCallback=1
18.362 webView shouldLoad=1 (before) state=1 loadCount=0 URL=http://spokendata.com/
18.362 CDVWebViewDelegate: Navigation started when state=1
18.363 Failed to load webpage with error: CDVWebViewDelegate: Navigation started when state=1
18.364 webView shouldLoad=1 (after) isTopLevelNavigation=1 state=1 loadCount=0
18.438 webView didStartLoad (before). state=1 loadCount=0
18.439 webView didStartLoad (after). state=2 loadCount=1 fireCallback=1
18.439 Resetting plugins due to page load.
18.553 webView didFinishLoad (before). state=2 loadCount=1
18.553 webView didFinishLoad (after). state=0 loadCount=0 fireCallback=1
18.553 Finished load of: http://spokendata.com/
18.995 webView shouldLoad=1 (before) state=0 loadCount=0 URL=http://spokendata.com/demo
18.996 webView shouldLoad=1 (after) isTopLevelNavigation=1 state=1 loadCount=0
18.997 webView didStartLoad (before). state=1 loadCount=0
18.997 webView didStartLoad (after). state=2 loadCount=1 fireCallback=1
18.997 Resetting plugins due to page load.
19.152 webView didFinishLoad (before). state=2 loadCount=1
19.152 webView didFinishLoad (after). state=0 loadCount=0 fireCallback=1
19.153 Finished load of: http://spokendata.com/demo

我们正在使用Cordova 3.1.0-0.1.0

更新:它偶尔会发生-有时会起作用,有时却不会。它发生在各种页面(大小)上。我创建了一个应用程序(https://github.com/tomasfejfar/cordova-bug-01),可以在其中复制问题。您只需尝试单击“ SEZNAM”链接足够长的时间,以显示“ seznam.cz”而不是“ google.com” ...

汤玛斯·费法尔(TomášFejfar)

我将其添加为答案,以便将该问题列为已解决的答案。

实际上,我们将问题回溯到了Sencha Touch事件处理程序-它们非常具体,因为它们需要处理实际dom元素的创建和删除(div是定期创建和删除的)。事件被附加到诸如Ext.Container的更高级别的“元素”上。那是Ext在使用div时创建的div表示,也可以稍后将其删除,以便在重新创建一段时间后显示(作为另一个DOM元素)。这将使您无法绑定任何DOM事件。因此,Sencha在内部进行处理。内部句柄以某种方式忽略event.preventDefault(),这会使链接同时加载到webview和子浏览器中(因此,是的,您非常正确,Uncharted Space)。最简单的解决方案仍然是使用“ non-href hrefs”(数据-href)。但是,如果您不选择使用内部Sencha事件系统,则可以解决该问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Cordova InAppBrowser 卡在加载中

来自分类Dev

Phonegap / Cordova如何通知Android页面已加载?

来自分类Dev

从Apache Cordova中的“ inappbrowser”打开相机或图库

来自分类Dev

如何使用Cordova的InAppBrowser将HTML注入页面

来自分类Dev

Cordova Android InAppBrowser 中的全屏

来自分类Dev

在themeablebrowser Cordova / Phonegap中获取页面标题

来自分类Dev

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

来自分类Dev

Cordova InAppBrowser在Android上打开双窗口

来自分类Dev

Cordova插件InAppBrowser无法再次打开

来自分类Dev

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

来自分类Dev

Ionic Cordova InAppBrowser 不会再次打开 url

来自分类Dev

如何正常中断Cordova的InAppBrowser中某个URL的加载并在系统浏览器中打开它?

来自分类Dev

隐藏Cordova InAppBrowser,直到完成加载

来自分类Dev

如何使Cordova Inappbrowser等待加载iframe

来自分类Dev

本机页面过渡+ phonegap + cordova

来自分类Dev

Phonegap / Cordova 3.1由于页面加载而重置插件

来自分类Dev

正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

来自分类Dev

正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

来自分类Dev

如何在Cordova InAppBrowser中设置标题?

来自分类Dev

在inAppBrowser中启用下载-Phonegap / Cordova

来自分类Dev

inappBrowser中的Cordova后按按钮

来自分类Dev

Cordova InAppBrowser 在 iOS 中不起作用

来自分类Dev

在Cordova JavaScript中打开PDF

来自分类Dev

在Cordova 3.4中安装Cordova插件

来自分类Dev

Apache Cordova InAppBrowser全屏模式

来自分类Dev

Apache Cordova InAppBrowser基本实现

来自分类Dev

Cordova InAppBrowser插件-Windows 10

来自分类Dev

未安装Cordova InAppBrowser插件

来自分类Dev

Cordova InAppBrowser 清除搜索历史

Related 相关文章

  1. 1

    Cordova InAppBrowser 卡在加载中

  2. 2

    Phonegap / Cordova如何通知Android页面已加载?

  3. 3

    从Apache Cordova中的“ inappbrowser”打开相机或图库

  4. 4

    如何使用Cordova的InAppBrowser将HTML注入页面

  5. 5

    Cordova Android InAppBrowser 中的全屏

  6. 6

    在themeablebrowser Cordova / Phonegap中获取页面标题

  7. 7

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

  8. 8

    Cordova InAppBrowser在Android上打开双窗口

  9. 9

    Cordova插件InAppBrowser无法再次打开

  10. 10

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

  11. 11

    Ionic Cordova InAppBrowser 不会再次打开 url

  12. 12

    如何正常中断Cordova的InAppBrowser中某个URL的加载并在系统浏览器中打开它?

  13. 13

    隐藏Cordova InAppBrowser,直到完成加载

  14. 14

    如何使Cordova Inappbrowser等待加载iframe

  15. 15

    本机页面过渡+ phonegap + cordova

  16. 16

    Phonegap / Cordova 3.1由于页面加载而重置插件

  17. 17

    正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

  18. 18

    正确在浏览器或本机应用程序中打开Facebook页面链接IOS Cordova

  19. 19

    如何在Cordova InAppBrowser中设置标题?

  20. 20

    在inAppBrowser中启用下载-Phonegap / Cordova

  21. 21

    inappBrowser中的Cordova后按按钮

  22. 22

    Cordova InAppBrowser 在 iOS 中不起作用

  23. 23

    在Cordova JavaScript中打开PDF

  24. 24

    在Cordova 3.4中安装Cordova插件

  25. 25

    Apache Cordova InAppBrowser全屏模式

  26. 26

    Apache Cordova InAppBrowser基本实现

  27. 27

    Cordova InAppBrowser插件-Windows 10

  28. 28

    未安装Cordova InAppBrowser插件

  29. 29

    Cordova InAppBrowser 清除搜索历史

热门标签

归档