现在的chrome for android也能像safari那样以全屏模式运行web app了。
长久以来很多人不把web app当app的原因是那些address bar,controls,但现在这个问题有多元化的解决方案。不同于HTML5的document.element.requestFullScreen()
,android上的chrome和ios上的Safari提供一种被称作installed web app的方式来实现全屏运行web app,并且在浏览器层提供优化。
如果你也尝试过这样运行你的web app,你就会明白现在web app与native app的体验差距有多小了。
我的问题是,如何让chrome以为我添加在主屏幕的快捷方式也是一个installed web app?换言之,我有可能知道那个调用chrome启用web app mode的intent吗?
参考资料:
https://developers.google.com/chrome/mobile/docs/intents
https://developers.google.com/chrome/mobile/docs/installtohomescreen
http://www.html5rocks.com/en/mobile/fullscreen/
http://stackoverflow.com/questions/14477928/how-to-open-a-website-using-safari-in-fullscreen-mode-for-ipad
看到有部分朋友收藏了這個問題,我認為我有必要(再一次)將自己的最近的進展發表到這裡(看來似乎我經常自問自答啊哈哈)。
目前做了的事情:
在google play找到了一個app叫做intent intercept,這個app可以捕捉並顯示intent。但是它的工作原理是需要使用者在「選擇開啟程式」中選擇這個intend intercept,然後它才能顯示。也就是說,對於沒有「選擇開啟程式」這個過程的intent,是無法用它來捕捉的。
在手機桌面上啟動installed web app,是沒有這個步驟的。我把chrome卸載之後,打開桌面上的installed web app,會顯示一個toast:「沒有安裝對應的應用程式」。重裝chrome,有趣的事情發生了,installed web app打開了,但是是直接用chrome瀏覽器打開的,並沒有全屏顯示,也沒有新的後台。
結論:
這個intent應該跟一般用瀏覽器的開連結的intent差不多,只是無法知道參數。
另外這個intent是直接針對chrome的,如果不是所有的使用者(或大部分)都裝了chrome,探勘這個技術細節也沒什麼實際意義。我就到這裡了,有其他大牛想繼續探求的話可以直接回答哈哈,我一定會改採納的~