Я использую этот модуль (https://github.com/apache/cordova-plugin-inappbrowser) для возможности открывать внешние ссылки в моем приложении Cordova. Однако пример postMessage
из документации не работает.
Мне нуженвозможность взаимодействия экземпляра inappbrowser
с родителем (opener
). Учитывая, что с inappbrowser
нет объекта opener
, я просмотрел документацию и тесты репозитория и не могувоспроизведите API postMessage
для связи между экземпляром inappbrowser
и основным приложением Cordova (родительским).
Вот простой пример, взятый из документации / теста в этом репо:
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);
});