2016-06-16 2 views
0

Я пытаюсь реализовать InAppBrowser в IONIC2.TypeError: Не удается прочитать свойство «ready» undefined-IONIC2

извлечённого Browser Plugin

ionic plugin add cordova-plugin-inappbrowser 

Мой .TS код, чтобы открыть броузер

browser(url:string) 
{ 
    this.platform.ready().then(() => { 
      open(url, "_blank", "location=true"); 
     }); 

}

моего HTML код

<button (click)="browser('https://www.google.com')" >Open Browser</button> 

при попытке выполнить

следующая ошибка приходит

ORIGINAL EXCEPTION: TypeError: Cannot read property 'ready' of undefined 

ORIGINAL STACKTRACE: 
TypeError: Cannot read property 'ready' of undefined 
    at HomePage.browser (http://10.44.71.150:8100/build/js/app.bundle.js:180:22) 
    at DebugAppView._View_HomePage0._handle_click_27_0 (HomePage.template.js:500:28) 
    at http://10.44.71.150:8100/build/js/app.bundle.js:26022:24 
    at http://10.44.71.150:8100/build/js/app.bundle.js:34969:36 
    at http://10.44.71.150:8100/build/js/app.bundle.js:35039:93 
    at ZoneDelegate.invoke (http://10.44.71.150:8100/build/js/zone.js:323:29) 
    at Object.onInvoke (http://10.44.71.150:8100/build/js/app.bundle.js:30600:41) 
    at ZoneDelegate.invoke (http://10.44.71.150:8100/build/js/zone.js:322:35) 
    at Zone.runGuarded (http://10.44.71.150:8100/build/js/zone.js:230:48) 
    at NgZoneImpl.runInnerGuarded (http://10.44.71.150:8100/build/js/app.bundle.js:30633:78) 

Есть ли что-то мне не хватает?

ответ

1

Вы инициализируете переменную platform в constructor вашего .ts?

Убедитесь, что вы импортируете его первым, как это:

import {Platform, ...} from 'ionic-angular'; 

А потом в конструкторе:

constructor(private platform: Platform, ...) { 
    .... 
} 
1

Я столкнулся с этой проблемой, а также. В учебнике я использовал проинструктировал меня, чтобы добавить этот код в объявлении класса:

static get parameters() { 
     return [[Platform]]; 
    } 

Удаление этого кода предотвратить ошибку, и InAppBrowser работала гладко после этого.

Я понимаю, что этот ответ опаздывает, но я надеюсь, что это может помочь кому-то другому, кто сталкивается с этой проблемой.

1

Мне пришлось пометить переменные в конструкторе как частные, чтобы они нормально работали для меня.

browser(private url:string, private platform: Platform) 
    { 
    this.platform.ready().then(() => { 
     open(url, "_blank", "location=true"); 
    }); 
Смежные вопросы