【问题标题】:"Cannot read property 'addEventListener' of undefined" using Ionic2 InAppBrowser“无法读取未定义的属性‘addEventListener’”使用 Ionic2 InAppBrowser
【发布时间】:2017-04-15 06:06:09
【问题描述】:

我正在使用ionic-native 中的InAppBrowser 打开系统浏览器窗口并观察要加载的特定回调URL。这是我的代码的 sn-p:

import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { InAppBrowser, InAppBrowserEvent } from 'ionic-native';

@Component({/* ... properties ... */})
export class MyPage {

    /* ... constructor, etc. ... */

    // function triggered by button click on the page
    register() {
        let url = 'https://example.com/oauth2/authorize?client_id=29D20X';
        let browser: InAppBrowser = new InAppBrowser(url, '_system');
        browser.on('loadstart').subscribe((ev: InAppBrowserEvent) => { // line 23
            if (0 === ev.url.indexOf('http://localhost:8100/callback')) {
                console.log(ev.url);
                browser.close();
            }
        });
    }
}

一旦触发register()函数,浏览器窗口就会打开预期的页面,但同时在打开它的页面上,我收到以下错误:

TypeError: Cannot read property 'addEventListener' of undefined
    at Observable._subscribe (inappbrowser.js:79)
    at Observable.subscribe (Observable.js:56)
    at MyPage.register (my-page.ts:23)

在堆栈跟踪之后还有更多内容,但很明显问题出在inappbrowserionic-native 包装器中。

这是一个错误,还是我遗漏了什么?这是我的系统信息,我正在使用ionic serve 在浏览器中进行测试。

Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.5
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.0.0
ios-deploy version: 1.8.2
ios-sim version: 5.0.3
OS: OS X Yosemite
Node Version: v7.0.0
Xcode version: Xcode 7.2.1 Build version 7C1002

谢谢!

【问题讨论】:

    标签: cordova ionic-framework inappbrowser


    【解决方案1】:

    想通了!!!

    问题在于传递给new InAppBrowser()函数的参数。

    有效

    let browser = new InAppBrowser(url, '_blank', 'location=yes');
    

    工作:

    let browser = new InAppBrowser(url, '_system');
    

    我一直关注this documentation,经过大量谷歌搜索和阅读有关 inappbrowser 的随机线程后,我终于找到了解决方案。本质上,这两者都会打开一个浏览器窗口。但是,不正确的方法将不允许您将事件侦听器附加到任何浏览器事件,例如加载开始。

    【讨论】:

      猜你喜欢
      • 2017-06-24
      • 2022-12-31
      • 2021-04-17
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 2022-07-26
      • 2016-12-20
      • 1970-01-01
      相关资源
      最近更新 更多