不能从inappbrowser到科尔多瓦的应用程序的postMessage

问题描述 投票:3回答:2

我使用这个模块(https://github.com/apache/cordova-plugin-inappbrowser)对我的科尔多瓦的应用程序中打开外部链接的能力。然而,从文档postMessage例如不工作。

我需要能够为inappbrowser实例与父(在opener)通信的能力。由于没有与opener没有inappbrowser对象,我已经通过回购的文档和测试看,我不能重现postMessage API的inappbrowser实例和主科尔多瓦应用程序(父)之间的通信。

下面是该回购协议中的文档/测试采取一个简单的例子:

const ref = cordova.InAppBrowser.open('http://www.google.com', '_blank');

ref.addEventListener('loadstop', () => {
  console.log('loadstop has been fired'); // this fires

  // when this has been executed, `webkit` variable doesn't exist inside of the `inappbrowser`
  // instance
  ref.executeScript({
    code: `(() => {
      var message = "TESTING!!!";
      webkit.messageHandlers.cordova_iab.postMessage(JSON.stringify(message));
    })()`
  });
});

// this is never fired
ref.addEventListener('message', (...args) => {
  console.log('MESSAGE RECEIVED FROM IN_APP_BROWSER', ...args);
});
ios cordova ionic-framework phonegap-plugins hybrid-mobile-app
2个回答
1
投票

该文件指向一个尚未发布的版本。我指着这个包的3.1.0-dev版本和实施工作就像一个魅力。


-1
投票

是的,InAppBrowser还没有postMessage的实现。在这种情况下,唯一的解决办法是使用iframe从外部网页收到postMessage的。 This has been discussed earlier在这个网站了。

© www.soinside.com 2019 - 2024. All rights reserved.