我們正在從 ionic 應用程式在 inappbrowser 中加載給定的 URL,它將加載 HTML 表單和一個隱藏的輸入欄位。
我正在嘗試使用 inappbrowser 的 executeScript 方法在點擊提交按鈕時獲取該隱藏欄位值,如下所示:
browser.executeScript({
code:
"var result; document.getElementById('BtnSubmit').addEventListener('click', function(){"
"result = document.getElementById('myInput').value;});",
});
在結果變數中,獲取輸入值但需要將其從 executeScript 回傳到 ionic 應用程式背景關系中。請讓我知道是否有任何解決方案?提前致謝。
uj5u.com熱心網友回復:
您需要將您的回應附加到 inappbrowser 的訊息事件,然后在應用程式端接收它。
下面的腳本是發送postmessage。它具有通過的特定格式。需要創建 JSON 物件。
browser.executeScript({
code: "document.getElementById('customBackbtn').onclick = function() {\
var message = 'close';\
var messageObj = {message: message};\
var stringifiedMessageObj = JSON.stringify(messageObj);\
webkit.messageHandlers.cordova_iab.postMessage('stringifiedMessageObj');\
}"});
然后在您的應用中捕獲來自 iab 的帖子訊息:
browser.on('message').subscribe((val)=>{
const postObject:any = val;
//Do whatever you want to with postObject response from inappbrowser
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/312540.html
標籤:javascript 离子框架 离子4 在应用程序浏览器中 离子5
上一篇:在設備上運行離子/電容器應用程式的命令是什么,并為android和ios實時重新加載
下一篇:構建離子應用程式時“您的JAVA_HOME無效:C:\ProgramFiles\Java\jdk1.8.0_301”
