iT邦幫忙

0

PWA相關問題

PWA就我個人認為是一個網頁捷徑

它所使用的也是只有web可以達到的功能

寫網頁可以使用PHP的include或require下去導入共同頁面,共同使用頁首頁尾

我有試過html include html,但是效果不佳

若要達到PWA的離線瀏覽功能,只能用HTML去寫所有頁面存到cache嗎?

PHP程式無法存在使用者端吧

有辦法使用共同的head的方式嗎?

看更多先前的討論...收起先前的討論...
光看你「PWA就我個人認為是一個網頁捷徑」
我就覺得你還不懂pwa。
我認為後續你的問題也沒啥需要討論。
先去搞懂啥是pwa吧。

或許你不明白我為何要這樣說。
你明白了啥是pwa後。你就會懂了你這個問題是多麼的xx
PWA,骨子裡還是網頁,無法像APP依樣使用底層功能,
使用cache存網頁、圖片,
使用IndexedDB存取資料,
使用背景處裡下去做事情,
但是所有東西,基本都是網頁可以做到的事情
如果你不設定離線瀏覽,在沒有連線的狀況下,會顯示無法顯示網頁。
這樣不是網頁是甚麼呢??
看樣子你對物件及一般的認知有所偏差。
pwa認真來說。它不算是網頁的捷徑。可以算是瀏覽器的指定式容器,也可以將其視為另一種瀏覽器app。
它其實本身有搭配一些app能做到的東西,如取得鏡頭、取得通訊錄、儲存資料到手機上....。
畢竟他原理也很單純,它真的是一個app,只是掛入了瀏覽器元件跑。

認真來說,你也可以將其當成是app跟web server的一種中介器。
畢竟實際的瀏覽器 app 。有些需要使用手機的應用功能還是辦不到的。

如果你有去研究app的開發。你可以看一下 webview 這個元件。
PWA如果使用PWAbuilder打包成apk可以上架,
也可以透過瀏覽器下載到桌面上
不設定cache存頁面一樣可以當作PWA,(沒網路的狀態下)會直接出現小恐龍
SQLite是無法使用的,這是手機原生功能
可以使用的都是HTML5支援的功能

我有使用Cordova去製作過,
可以使用Cordova提供的底層連接使用到手機底層功能,
是Cordova使用其他程式語言去實現底層的串接,他不提供一樣不能使用

PWA是基於HTML5才可以去使用這些功能
APP我使用Xcode下去寫的時候使用webview,裡面可以用HTML程式碼
但是你要使用到原生功能一樣自己去接原生程式碼

修改一下PWA骨子是瀏覽器才對
>SQLite是無法使用的


這並非是對的。不過目前能打包套裝apk的。的確沒有提供這項功能。
如果你是自已設計的pwa。也是可以掛入標簽,然後能跟手機請求SQLite。
你說的html5使用功能。這個觀念並不完全是對的。
一些html5本身可使用的手機功能。大多數來說也是能在一般瀏覽器上使用。
並非是pwa獨有的。兩者不要混在一起談。

pwa最大的好處是,可以自定義呼叫標簽。並解析對應的html碼。
如我可以掛了攔載heft的請求連結。符合 「test://」開頭的。我就將其發送攔截掉轉往自已的內部元件請求。

或是解析特殊應用的語法。將其轉換成我要的對應app請求。
簡單來說。你還是可以將其視為app來使用。並搭配瀏覽器元件。
讓它除了本身web舊有的特性之外。還多加內部應用請求的特性原理。

當然,app的權限特性還是依然存在。如果部份功能及應用的請求在權限不足的情況下。依然無法使用。這點跟原本開發app一樣的東西。
所以不能混在一起說。
The best of both worlds #
At their heart, Progressive Web Apps are just web applications. Using progressive enhancement, new capabilities are enabled in modern browsers. Using service workers and a web app manifest, your web application becomes reliable and installable. If the new capabilities aren't available, users still get the core experience.

我認真看了相關資料,他們也說本質就是web
你想用自已的理解方式。堅持自已的已見。
你辦到了。

我不會再跟你討論這個問題。你覺得本質是web就web吧。
反正各人有各人的解讀方式。我也沒辦法跟你說你是對的還是錯的。
這對學習沒意義。

加油!!祝再加強你的能力。
通靈亡 iT邦研究生 2 級 ‧ 2020-11-05 12:22:39 檢舉
兩位大大的論點各對一半一半
PWA 的本質是基於Web Browser的Service workers、Application shell、Web App Manifes,來實現APP的功能需求
因此本身確實有些OS平台和底層的限制

Service Worker 的相關機制可以參考這篇:
https://pjchender.github.io/2018/03/05/pwa-%E6%9C%8D%E5%8B%99%E5%B7%A5%E4%BD%9C%E7%B7%9A%E7%A8%8B%EF%BC%88service-workers%EF%BC%89/

PWA主要的優點是為了節省掉很多寫Native APP的開發成本,本來就不是為了完全取代原生APP。
如果開發的功能需求需高度仰賴手機系統的底層,一般還是建議寫Native APP

> So here are business cases when to choose a progressive app.

※ the business looks for a cross-platform app to reach a large audience
※ the limited budget and terms for the app development and updates
※ expected app functionality or content don’t follow the application store policies
※ there is no need for close integration with the device hardware
※ the push notification for iOS users isn’t the integral part of the business

And the list of cases where the native apps work best for:

※ businesses that consider the store presence as a must
※ the app requires tight integration with the device hardware
※ the apps with a subscription model or those with in-app purchases
※ AR rendering solutions and games
※ the apps using biometric authentication

這兩篇文章針對需求和優劣限制的比較內容,寫得很詳細
https://apiko.com/blog/pwa-vs-native-apps-how-to-choose-your-technology/

https://relevant.software/blog/pwa-vs-native-apps-which-one-should-you-choose/
其實我也沒啥論點。
主要是要告訴他

pwa <> 網頁或網頁連結(web)
pwa = app
pwa $= 瀏覽器
pwa use(web)

以上觀點,看懂就懂。不懂就算了。

1 個回答

0
海綿寶寶
iT邦大神 1 級 ‧ 2020-11-05 17:34:57

根據這篇的說法
php 在 PWA 扮演的角色主要是「提供 json 資料給前端」
不是用 php 產生網頁

如果你打算用 php 產生網頁的話
根據這篇的說法
PWA 只會 cache 執行 php 產生的「網頁」
不會 cache 「php 檔案本身」

以上提供參考

但是裡面沒有顯示主要是將前端使用js的框架去建構,
我現在是直接寫js接後端,是一樣的方法
因為PWA是將網頁存在Client端php副檔名無法存
原本有想要使用jquery mobile,很多地方要去改JQ源碼,
就想看看有沒有其他方式
所以想要使用可以共同使用頁面的其他方法,

我要發表回答

立即登入回答