R作者dream1124 (全新开始)
看板Ajax
标题[问题] 取代phoneGap InAppBrowser api的可能?
时间Tue Jun 24 19:59:22 2014
大家好
想请问有没有可能在 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://webptt.com/cn.aspx?n=bbs/Ajax/M.1403611164.A.CE5.html
1F:推 mrbigmouth:没试过 不过我在想有没有办法套iframe 之後从外部将 06/24 21:24
2F:→ mrbigmouth:iframe内部的函数如window.open取代为适合的api? 06/24 21:24
这方法已经试过,但因为我要载入的网页和原本 App 网页不是同源的
所以结果看起来是不太行,浏览器好像会因为安全性而挡掉操作。
3F:推 shadowjohn:InAppBrowser 有 executeScript 可以用啊~ 06/25 15:28
4F:推 shadowjohn:不过 backbutton 的事件改不了~ :( 06/25 16:46
5F:推 shadowjohn:搭loadstop 可以让你把你想动态处理的 js 放入~ 06/25 16:48
後来我有试用这个方法,但现在遇到的困难是,要载入的网页本身是个 frameset
的框框里面再塞入几个 frame
在 loadstop 事件之後好像没办法执行 js,请问这是 frameset 的标准吗?
6F:推 mrbigmouth:都什麽年代了还在用frameset啊XDDD 06/25 20:52
工作嘛~ 总是会有些不是挑战 IQ, 反而挑战 EQ 的东西 (摊
7F:推 shadowjohn:可以用Interval loop 来检查frameset 的内容是否生成 06/26 08:27
8F:→ shadowjohn:先写实体function再用 .toString() 喂给 code~ 06/26 08:30
我前端不强,请问要怎麽检查 frameset 的内容呢?
这边我猜是 eval 的方法执行 function 的做法? 不太懂意思~
顺便想再请问 InAppBrowser executeScript 的里面程式码,
如果在装置上测试时,有办法写到 Android LogCat 之类的地方吗?
还是要用 weinre 之类的做法来取得执行讯息呢?
谢谢~
※ 编辑: dream1124 (1.162.125.133), 06/26/2014 20:40:48