【发布时间】:2021-07-13 14:42:43
【问题描述】:
我有一个离子应用程序,我试图在其中调用一个调用 InAppBrowser 的方法。 浏览器实例保存在本地变量中,用于调用executeScript在网页上插入按钮。
现在我需要单击按钮并将一个事件触发回 ionic 应用程序。其中调用close方法关闭当前运行的inAppBrowser实例。
我如何能够传达用户点击了 inappbrowser 上的任何按钮并在点击 inAppbrowser 上的按钮时调用 ionic 应用程序中的任何方法。
openWebpage() {
let browser = this.iab.create('https://www.google.com', '_blank'
, {
closebuttoncolor: "#ffffff",
lefttoright: 'yes',
hideurlbar: 'yes',
fullscreen: 'yes',
hardwareback: 'no',
toolbarcolor: '#145a7b',
zoom: 'no',
useWideViewPort: 'no',
hidenavigationbuttons: 'yes',
footer: 'no',
message: "Hello",
toolbar : 'no',
location: 'no'
}
);
browser.on('loadstop').subscribe(() => {
browser.executeScript({ code: "(function() { var body = document.querySelector('body'); var button = document.createElement('div'); button.innerHTML = 'Need Help'; button.classList.add('need_help'); body.appendChild(button); })();" });
browser.executeScript({ code: "(function() { var body = document.querySelector('body'); var button = document.createElement('div'); button.setAttribute('id','customBackbtn');button.innerHTML = '< Back'; button.classList.add('back_btn'); body.appendChild(button); } )( );" },);
browser.executeScript({
code: "document.getElementById('customBackbtn').onclick = function() { //Adding functionality here to somehow close browser}"
})
browser.insertCSS({ code: ".need_help {position: absolute;font-size: 22px;top: 0px;left: 50%;transform: translate(-50%);display: flex;justify-content: center;align-items: center ;height: 75px;color: white;background: #145a7b;width: 100%;} .back_btn { text-decoration: underline;position: absolute; display:flex;align-items: center;height: 75px;font-size: 22px; top: 0px; left: 20px;color:#FFFFFF } #myvoya-sso-ui {padding-top: 75px;}" });
});
}
【问题讨论】:
标签: javascript angularjs angular ionic-framework