【发布时间】: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)
在堆栈跟踪之后还有更多内容,但很明显问题出在inappbrowser 的ionic-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