WebView:修订间差异
创建页面,内容为“{{Infobox | 标题 = WebView | 内容 = {{!}}- ! 类型 {{!}} 软件组件 {{!}}- ! 用途 {{!}} 在原生应用中嵌入Web内容 {{!}}- ! 首次出现 {{!}} 1990年代末(KHTML/WebKit前身) {{!}}- ! 主流引擎 {{!}} WebKit、Blink、WebView2 {{!}}- ! 相关标准 {{!}} HTML、CSS、JavaScript }} '''WebView'''是一种软件组件,由操作系统或开发框架提供,用于在原生应用程序内部渲染Web内容,而无需将用户切换至系…” |
IdleTap-bot(留言 | 贡献) 由旧格式Infobox转换为新参数格式(label/data),修复空信息框(由IdleTap-bot执行) |
||
| (未显示另一用户的1个中间版本) | |||
| 第1行: | 第1行: | ||
{{Infobox | {{Infobox | ||
| | | title = WebView | ||
| | |||
| label1 = 类型 | |||
| data1 = 软件组件 | |||
| label2 = 用途 | |||
| data2 = 在原生应用中嵌入Web内容 | |||
| label3 = 首次出现 | |||
| data3 = 1990年代末(KHTML/WebKit前身) | |||
| label4 = 主流引擎 | |||
| data4 = WebKit、Blink、WebView2 | |||
| label5 = 相关标准 | |||
| data5 = HTML、CSS、JavaScript | |||
}} | }} | ||
'''[[Web]]View'''是一种[[软件]]组件,由[[操作系统]]或开发框架提供,用于在原生应用程序内部渲染Web内容,而无需将[[用户]]切换至系统级Web[[浏览器]]。<ref name=":0">[https://webview-cg.github.io/usage-and-challenges/ WebView: Usage Scenarios and Challenges - W3C WebView Community Group]</ref> 它允许开发者将基于[[HTML]]、[[CSS]]和[[Java]]Script的网页或Web应用嵌入到桌面或移动应用中,实现原生代码与Web技术的混合开发模式。<ref name=":1">[https://median.co/blog/what-is-a-webview-app-how-do-i-build-one What is a WebView app, and when should you build one? - Median]</ref> WebView广泛应用于混合移动应用、桌面应用内嵌页面、OAuth登录流程及富[[文本]]内容展示等场景 | '''[[Web]]View'''是一种[[软件]]组件,由[[操作系统]]或开发框架提供,用于在原生应用程序内部渲染Web内容,而无需将[[用户]]切换至系统级Web[[浏览器]]。<ref name=":0">[https://webview-cg.github.io/usage-and-challenges/ WebView: Usage Scenarios and Challenges - W3C WebView Community Group]</ref> 它允许开发者将基于[[HTML]]、[[CSS]]和[[Java]]Script的网页或Web应用嵌入到桌面或移动应用中,实现原生代码与Web技术的混合开发模式。<ref name=":1">[https://median.co/blog/what-is-a-webview-app-how-do-i-build-one What is a WebView app, and when should you build one? - Median]</ref> WebView广泛应用于混合移动应用、桌面应用内嵌页面、OAuth登录流程及富[[文本]]内容展示等场景<ref name=":0" />。 | ||
== 历史 == | == 历史 == | ||
| 第27行: | 第26行: | ||
现代WebView技术的根基可追溯至1998年KDE项目开发的KHTML排版引擎与K[[Js|JS]] [[JavaScript]]引擎。<ref name=":2">[https://butthurtfork.com/ The Butthurt Fork - KHTML to WebKit Timeline]</ref> 2001年6月,[[Apple]]公司内部启动[[WebKit]]项目,基于KHTML进行fork,旨在为[[macOS]]构建专用的浏览器引擎。<ref name=":3">[https://github.com/liamzebedee/webkit-source-archive GitHub - liamzebedee/webkit-source-archive]</ref> 2003年1月,Steve Jobs在Macworld大会上发布[[Safari]]浏览器,首次公开采用WebKit引擎。<ref name=":2" /> 2005年6月,Apple将WebKit以[[BSD许可证]]开源,使其成为[[跨平台]]渲染引擎的基础。<ref name=":2" /> | 现代WebView技术的根基可追溯至1998年KDE项目开发的KHTML排版引擎与K[[Js|JS]] [[JavaScript]]引擎。<ref name=":2">[https://butthurtfork.com/ The Butthurt Fork - KHTML to WebKit Timeline]</ref> 2001年6月,[[Apple]]公司内部启动[[WebKit]]项目,基于KHTML进行fork,旨在为[[macOS]]构建专用的浏览器引擎。<ref name=":3">[https://github.com/liamzebedee/webkit-source-archive GitHub - liamzebedee/webkit-source-archive]</ref> 2003年1月,Steve Jobs在Macworld大会上发布[[Safari]]浏览器,首次公开采用WebKit引擎。<ref name=":2" /> 2005年6月,Apple将WebKit以[[BSD许可证]]开源,使其成为[[跨平台]]渲染引擎的基础。<ref name=":2" /> | ||
2008年,[[Google]]基于WebKit发布[[Chromium]]浏览器;2013年4月 | 2008年,[[Google]]基于WebKit发布[[Chromium]]浏览器;2013年4月,[[Go]]ogle从WebKit fork出[[Blink]]引擎,作为Chromium及后续[[Chrome]]的渲染核心。<ref name=":4">[https://smist08.wordpress.com/2013/04/13/google-forks-webkit/ Google Forks WebKit - smist08]</ref> 这一分支事件深刻影响了后续各平台WebView组件的技术路线。 | ||
=== 移动平台WebView的演进 === | === 移动平台WebView的演进 === | ||
| 第43行: | 第42行: | ||
根据[[W3C]] WebView社区组的定义,WebView按功能与集成深度可分为两类:<ref name=":0" /> | 根据[[W3C]] WebView社区组的定义,WebView按功能与集成深度可分为两类:<ref name=":0" /> | ||
'''类浏览器WebView(Browser-like WebViews)''':API表面较为简单,主要用于加载和显示网页内容。这类WebView通常不提供对渲染内容的深度访问权限,且与系统级浏览器共享[[Cookie]]、缓存等状态[[数据]]。<ref name=":0" /> | '''类浏览器WebView(Browser-like WebViews)''':API表面较为简单,主要用于加载和显示网页内容。这类WebView通常不提供对渲染内容的深度访问权限,且与系统级浏览器共享[[Cookie]]、[[缓存]]等状态[[数据]]。<ref name=":0" /> | ||
'''全功能WebView(Fully-fledged WebViews)''':提供深度的原生与Web集成能力,允许宿主应用完全控制用户体验、读取和修改Web内容,并建立原生代码与Web代码之间的双向通信通道。此类WebView通常不共享系统浏览器的状态数据,具备更强的隔离性。<ref name=":0" /> | '''全功能WebView(Fully-fledged WebViews)''':提供深度的原生与Web集成能力,允许宿主应用完全控制用户体验、读取和修改Web内容,并建立原生代码与Web代码之间的双向通信通道。此类WebView通常不共享系统浏览器的状态数据,具备更强的隔离性。<ref name=":0" /> | ||