[Nuxt3] 如何支援 iOS13 InApp WebView

更新於 發佈於 閱讀時間約 5 分鐘

前言

近期用 Nuxt3 開發內嵌於 iOS、Android App 的網頁,並且要支援到 iOS13 版本。

測試時發現 Nuxt3 在 iOS13 功能會無法正常執行,因此順手記錄這個踩坑過程…XD

坑

第一坑 Nuxt3 Announcing

Nuxt 3 officially supports evergreen browsers only. The "core browser set" is what we (And web.dev team) believe most developers need to support most of the time in the absence of specific constraints. It takes into account usage numbers, developer expectations, and existing support in the ecosystem. The core browser set targets the 2 most recent major versions of Chrome, Firefox, and Edge on a monthly basis and Safari on a yearly basis.

On the server side, Nuxt 3 supports Node.js 14, 16, 18, and 19 at the moment. We encourage everyone to use the latest LTS releases of Node.js, we push them once widely adopted by major deployment platforms. This means we keep supporting Node.js versions as long as they are supported by the Node.js team on a rolling basis in non-major releases of Nuxt. Since 14.x is being end-of-life soon, we highly encourage you to update to the latest 18.x whenever possible.

這是我找到 Nuxtjs 發布 Nuxt3 版本時其中一段 “The browser and Node.js support” 聲明內容,讀完前兩段我就知道我踩到坑了,而其意思大概就是說: 「我們會以支援瀏覽器最新版本為主」。所以,只好去找 Nuxt3 如何自己調整支援度的設定。

補充說明:

  • Evergreen browser: 會自我升級至新版的瀏覽器 (e.g., Chrome, Edge …)
  • core browser set: 針對 Chrome、Firefox 和 Edge 的最近兩個主要版本以及每年針對 Safari 進行更新

第二坑 Nuxt3 Vite Build 參數說明

Nuxt3 Configuration 官方文件中會以 Vite 的預設設定進行打包,並且不是所有 Vite 設定都支援

vite configuration

vite configuration

Vite 官方預設瀏覽器支援

  • Firefox ≥ 78
  • Safari ≥ 14
  • Edge ≥ 88
  • Chrome ≥ 87

官方文件: Vite default browser support

因此,最後只需要再 Nuxt3 中增加以下設定即可

// nuxt.config.js

vite : {
build: {
target: [‘safari13’,]
}
}

<aside> 💡 這邊的 safari 版本是指 iOS版本的頭兩位數字,e.g. iOS14.xxx.xx ⇒ safari14

</aside>

補上這邊坑點, Nuxt3 Configuration Vite 參數說明中 build 參數只有 assetDir、emptyOutDir,加上前面還特別提說不是所有參數都支援,真的哭….

Nuxt3 configuration

Nuxt3 configuration

總結

比較驚訝的是現在新的框架更傾向支援瀏覽器的最新版本,因為以前的框架都是主打支援度。

我想應該是為了加速技術的推進,畢竟這些都會影響到 資安、版本支援的開發成本…等等。

最後,雖然最後只是加了短短幾行的設定,過程中真的找了很久 ( Nuxt3 文件真的很不完整,看到不少人抱怨XD)。

希望內容能幫助到你,有任何問題還請提出糾正~~

參考

Announcing 3.0 · Nuxt

Nuxt Configuration Reference · Nuxt

Building for Production | Vite (vitejs.dev)

留言
avatar-img
留言分享你的想法!
avatar-img
Andy Tsou的沙龍
1會員
4內容數
紀錄閱讀Vue3框架思維、設計實戰的過程
Andy Tsou的沙龍的其他內容
2023/12/24
如果前人已經走出一條最佳路徑,我們只顧著欣賞也會到山頂 關注點的改變 一個好的架構都會希望讓開發者能專注在”業務邏輯”的實現,可以提高專案的開發效率、減少開發者非關業務邏輯的事情而煩惱。例如: 開發者A: 請問元件的對話窗如何在確認時控制關閉或開啟狀態? 這個實際案例是架構師認為對話窗的動作
Thumbnail
2023/12/24
如果前人已經走出一條最佳路徑,我們只顧著欣賞也會到山頂 關注點的改變 一個好的架構都會希望讓開發者能專注在”業務邏輯”的實現,可以提高專案的開發效率、減少開發者非關業務邏輯的事情而煩惱。例如: 開發者A: 請問元件的對話窗如何在確認時控制關閉或開啟狀態? 這個實際案例是架構師認為對話窗的動作
Thumbnail
2023/12/24
情境 前陣子使用 Tailwind CSS 開發的正舒服時,遇到一個常見的需求。 為了營運方便,網頁常常會留一個區域給客戶使用,客戶可以編輯 HTML 來達到想要的效果 這樣的好處是,客戶可以馬上應對業務需要,IT也不用重新佈署程式 壞處是要考量資安,不過都是內部來源,出、入口增加檢核,好好
Thumbnail
2023/12/24
情境 前陣子使用 Tailwind CSS 開發的正舒服時,遇到一個常見的需求。 為了營運方便,網頁常常會留一個區域給客戶使用,客戶可以編輯 HTML 來達到想要的效果 這樣的好處是,客戶可以馬上應對業務需要,IT也不用重新佈署程式 壞處是要考量資安,不過都是內部來源,出、入口增加檢核,好好
Thumbnail
2023/12/24
CAN I USE 解決方法 加入 SCSS 或是 CSS 在 SCSS 檔案中加入以下這段 Code $max:20; @for $i from 1 through $max { body.below-safari14 { .flex-row { &.flex-n
Thumbnail
2023/12/24
CAN I USE 解決方法 加入 SCSS 或是 CSS 在 SCSS 檔案中加入以下這段 Code $max:20; @for $i from 1 through $max { body.below-safari14 { .flex-row { &.flex-n
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
Node.js是一個JavaScript運行環境。它使用了一個非阻塞、事件驅動的I/O模型,使其非常適合用於數據密集型的即時應用程序。簡單來說,Node.js允許你使用JavaScript來編寫伺服器端代碼。 nvm 安裝nvm Windows : 點擊 Releases · coreybut
Thumbnail
Node.js是一個JavaScript運行環境。它使用了一個非阻塞、事件驅動的I/O模型,使其非常適合用於數據密集型的即時應用程序。簡單來說,Node.js允許你使用JavaScript來編寫伺服器端代碼。 nvm 安裝nvm Windows : 點擊 Releases · coreybut
Thumbnail
Nuxt 的安裝流程,一起來試試看吧
Thumbnail
Nuxt 的安裝流程,一起來試試看吧
Thumbnail
對,沒錯。Nuxt 是一個框架 (Vue) 的框架。
Thumbnail
對,沒錯。Nuxt 是一個框架 (Vue) 的框架。
Thumbnail
前言 近期用 Nuxt3 開發內嵌於 iOS、Android App 的網頁,並且要支援到 iOS13 版本。 測試時發現 Nuxt3 在 iOS13 功能會無法正常執行,因此順手記錄這個踩坑過程…XD 第一坑 Nuxt3 Announcing Nuxt 3 officially suppo
Thumbnail
前言 近期用 Nuxt3 開發內嵌於 iOS、Android App 的網頁,並且要支援到 iOS13 版本。 測試時發現 Nuxt3 在 iOS13 功能會無法正常執行,因此順手記錄這個踩坑過程…XD 第一坑 Nuxt3 Announcing Nuxt 3 officially suppo
Thumbnail
Vue 筆記,Nuxt 簡介
Thumbnail
Vue 筆記,Nuxt 簡介
Thumbnail
NodeJS作用? NodeJS 作為一個後端程式語言,與伺服器交互,能夠開發服務器應用、開發工具類應用,例如:Webback、Vite 這些好用工具,或是透過NodeJS的electron框架開發桌面端應用,而常見的桌面端應用如 VScode
Thumbnail
NodeJS作用? NodeJS 作為一個後端程式語言,與伺服器交互,能夠開發服務器應用、開發工具類應用,例如:Webback、Vite 這些好用工具,或是透過NodeJS的electron框架開發桌面端應用,而常見的桌面端應用如 VScode
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News