[問題] 取代phoneGap InAppBrowser api的可能?

看板Ajax作者時間11年前 (2014/06/24 19:59), 11年前編輯推噓6(602)
留言8則, 2人參與, 最新討論串1/2 (看更多)
大家好 想請問有沒有可能在 phoneGap InAppBrowser 載入外部網頁時, 抽換網頁裡面呼叫的 javascript html DOM api 呢? 我的需求是要讓 phoneGap App 能連到 app 外部的網頁系統, 執行像平常在桌電上的系統操作。 因為 InAppBrowser 能整合在 app 裡面又有回上一頁的能力, 所以這是我優先考慮的實作方式,我讓 app 使用者點選連結之後呼叫 phoneGap 的 window.open 引導開啟 InAppBrowser。 但遇到的問題是載入的網頁本身會再呼叫瀏覽器的 window.open, 用以開啟像對話視窗那樣的東西。 這讓我的 InAppBrowser 改為呈現彈跳出的頁面, 然後又回不去最初 InAppBrowser 載入的頁面。 因此想請問 phoneGap 有沒有辦法替換 InAppBrowser 的 api 實作, 抽換某些 api,像是 window.open,讓載入的外部網頁在 app 裡面能正式執行呢? 或著請問有其他方法可以讓 phoneGap 載入外部給一般瀏覽器的網頁時, 能正常顯示與操作嗎? 我知道期待開發給桌電瀏覽器的網頁在行動裝置上也能正常呈顯不是好的想法, 但專案的時間不夠為原有的系統開發行動版,而且系統某些入口 前後端也綁得很死,可能也難以修改,暫時只能蒙著頭硬上了.... 先謝謝大家的協助! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.164.28 ※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1403611164.A.CE5.html

06/24 21:24, , 1F
沒試過 不過我在想有沒有辦法套iframe 之後從外部將
06/24 21:24, 1F

06/24 21:24, , 2F
iframe內部的函數如window.open取代為適合的api?
06/24 21:24, 2F
這方法已經試過,但因為我要載入的網頁和原本 App 網頁不是同源的 所以結果看起來是不太行,瀏覽器好像會因為安全性而擋掉操作。

06/25 15:28, , 3F
InAppBrowser 有 executeScript 可以用啊~
06/25 15:28, 3F

06/25 16:46, , 4F
不過 backbutton 的事件改不了~ :(
06/25 16:46, 4F

06/25 16:48, , 5F
搭loadstop 可以讓你把你想動態處理的 js 放入~
06/25 16:48, 5F
後來我有試用這個方法,但現在遇到的困難是,要載入的網頁本身是個 frameset 的框框裡面再塞入幾個 frame 在 loadstop 事件之後好像沒辦法執行 js,請問這是 frameset 的標準嗎?

06/25 20:52, , 6F
都什麼年代了還在用frameset啊XDDD
06/25 20:52, 6F
工作嘛~ 總是會有些不是挑戰 IQ, 反而挑戰 EQ 的東西 (攤

06/26 08:27, , 7F
可以用Interval loop 來檢查frameset 的內容是否生成
06/26 08:27, 7F

06/26 08:30, , 8F
先寫實體function再用 .toString() 餵給 code~
06/26 08:30, 8F
我前端不強,請問要怎麼檢查 frameset 的內容呢? 這邊我猜是 eval 的方法執行 function 的做法? 不太懂意思~ 順便想再請問 InAppBrowser executeScript 的裡面程式碼, 如果在裝置上測試時,有辦法寫到 Android LogCat 之類的地方嗎? 還是要用 weinre 之類的做法來取得執行訊息呢? 謝謝~ ※ 編輯: dream1124 (1.162.125.133), 06/26/2014 20:40:48
文章代碼(AID): #1JgMWSpb (Ajax)
文章代碼(AID): #1JgMWSpb (Ajax)