首页 文章

TypeError:无法读取undefined-IONIC2的属性'ready'

提问于
浏览
0

我正在尝试在IONIC2中实现InAppBrowser .

获取浏览器插件

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)

有什么我想念的吗?

3 回答

  • 1

    您是否正在初始化.ts的 constructor 中的 platform 变量?

    确保首先导入它,如下所示:

    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");
        });
    

相关问题