javascript - 是否可以在像js这样的网页上运行swift或swift与JS交互
问题描述
我不确定这有多可行(来自 web 性能 POV),但我想知道 Swift 代码是否可以在网站内运行?
例如,像 JS 的脚本标签一样添加到您的 HTML 标记中?
用例:
IOS 具有阻止某些网站功能(例如autoplay
视频)的低功耗模式 - 虽然您可以使用 js 事件侦听器来检测挂起,但我发现这是不可靠的指标(因为单击页面会导致视频挂起)。
我想知道是否可以使用 swift 快速检测是否正在使用低功耗模式,并为 JS 传递/创建一些标志以相应地检测和更改设计/功能。
我简要阅读了 Swift 文档,但可以让 swift 开发人员权衡这种解决方法的可能性。
理想情况下,会有一个针对低功耗模式的媒体查询,例如:@media and (low-power){}
但这似乎不是 CSS 的当前功能
解决方案
是和不是。Swift 在浏览器中运行,但它无法访问系统 API,除非您在定制的浏览器中运行它。
在浏览器中快速运行
可以在浏览器中运行 Swift 代码。您可以为此使用SwiftWasm。一些实用信息可以在SwiftWasm 书中找到
Swift ⇄ javascript 交互
也可以与 javascript 交互。见:https ://github.com/swiftwasm/JavaScriptKit
系统 API 访问
但是,无法通过普通浏览器访问系统 API。如果您想访问这些 API,您应该创建一个原生应用程序。请注意,您还可以在本机应用程序中创建 Web 内容。WKUserContentController
在此类应用程序中,您确实可以通过'add(_:name:)
方法访问系统 API 。
推荐阅读
- javascript - TypeScript 接口和联合类型参数
- css - Flexbox 没有在 div 之间应用空间
- tensorflow - 是否可以提高预训练的 TensorFlow 模型的性能?
- jquery - 如果选择选项或打开 url,则显示引导模式
- excel - 是否可以将 DAX 函数转换为 Measure,以便我可以使用切片器进行过滤?
- excel - Excel VBA用A16-A20之间的值填充最后一个空行
- .htaccess - 如何限制对没有 IP 的特定域的未经授权的访问
- ruby-on-rails - 如何使用 Ruby on Rails 将 company.address.city 转换为对象
- android - 如何在 m3u 文件中包含 epg 字体链接
- javascript - 当handleChange函数触发时我需要调用useQuery