2017-01-24 9 views
1

私はInAppBrowserionic-nativeから使用して、特定のコールバックURLがロードされるのを監視します。ここに私のコードの抜粋です:"Ionic2 InAppBrowserを使用して、 '未定義のaddEventListener'プロパティを読み取ることができません。

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 

ありがとうございます!

答えて

1

パラメータがnew InAppBrowser()関数に渡されるという問題がありました。この

作品:

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

このないませ作品:

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

私はthis documentation次と私は最終的に、グーグルとinappbrowserについてランダムスレッドを読ん多くの後にされました解決策が見つかりました。基本的に、これらの両方がブラウザウィンドウを開きます。ただし、不正な方法では、イベントリスナーを任意のブラウザイベントにアタッチすることはできません。 loadstart。

関連する問題