无法读取Ionic 4(Angular 8)上未定义的属性“ subscribe”

时间:2019-06-26 16:15:36

标签: angular ionic-framework ionic4 inappbrowser ionic-native

我正在为项目使用Ionic 4Angular 8。 我的项目需要与支付网关服务集成。 我正在使用Ionic 4 InAppBrowser plugin打开付款门户网站。

这是我的实现方式

const browserRef = this.browser.create(paymentUrl, '_blank');
this._hookBrowserClosedSubscription = browserRef.on('loadstop').subscribe(event => {
  console.log(event);
});

我使用命令ionic cordova run android --device --livereload --no-native-run在真实设备上运行我的应用。尝试使用InAppBrowser插件打开页面时出现以下错误:

无法读取未定义的属性“订阅”

我一直在搜索此错误,大多数人都提到它存在于浏览器而不是真实设备上。

我正在使用的软件包:

"cordova-plugin-inappbrowser": "^3.0.0"
"@ionic-native/in-app-browser": "^5.8.0",

有人可以帮我吗?

谢谢

1 个答案:

答案 0 :(得分:2)

最后,

我找到了问题的根本原因。 我不知道为什么,但是in-app-browser出现在我的packages.json中:

"cordova-plugin-inappbrowser": "^3.0.0"
"@ionic-native/in-app-browser": "^5.8.0",

当我使用Chrome Inspect在设备上运行应用程序时,看到一条警告消息:

本机:未安装InAppBrowser或您正在浏览器上运行。退回到window.open,所有实例方法将不起作用。

我尝试使用2条命令安装应用内浏览器:

ionic cordova plugin add cordova-plugin-inappbrowser
npm install @ionic-native/in-app-browser

当我再次运行我的应用程序时,警告消息消失了,浏览器也按我的预期运行。

多么愚蠢的错误。

希望这可以帮助情况相同的人。