问题标签 [safari-app-extension]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
safari-app-extension - 如何在 Safari App Extension 中识别选项卡(或获取其 ID)?
我正在开发一个 Safari 应用程序扩展,我想识别打开的选项卡。我发现没有 id 或没有办法做到这一点。
Chrome 有一个很棒的 API 可以做到这一点:https ://developer.chrome.com/extensions/tabs 。如何使用 Safari 应用程序扩展(在 Swift 中)做到这一点?
Safari 选项卡 API 很差,不包含 ID(https://developer.apple.com/documentation/safariservices/sfsafaritab)
macos - 当我从电子加载它时,如何调试我的 Safari 应用程序扩展?
我有一个电子应用程序,它在 Safari 浏览器中加载一个 Safari 应用程序扩展。当我打开浏览器时,我可以看到我的扩展名列在Safari -> Preferences... -> Extensions
. 一旦启用它,我就会看到工具栏图标出现然后消失。当我从 Electron 加载扩展时,有没有办法调试它?
ios - 向 WKWebView 发送消息会引发错误
我正在使用 WKWebView 在我的 Safari 应用程序扩展的弹出窗口中加载 HTML。我正在尝试使用向此页面发送消息,webView.evaluateJavaScript("myFunction()")
但失败并显示错误消息EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
。
我认为该页面最初没有加载到 webView 中,因此会引发此错误,但这里不是这种情况。该页面完全加载,但由于某种原因我收到此错误。这是我的代码。
我尝试在 completionHandler 中检查错误,但它没有去那里。有任何想法吗?
safari-app-extension - Safari App Extensions 问题,可能是授权
有一些我不明白的地方:我在 macOS 选项卡中创建了一个带有 Safari 扩展应用程序的新项目。我允许在 Safari 中安装未签名的扩展。因此,当我运行扩展程序时,我打开 Safari 首选项并启用扩展程序。但是什么都没有... 栏没有添加按钮(目标中默认有一个),没有触发断点,并且扩展程序似乎没有从网页读取、修改和发送内容的权限。在有关 Safari App Extension 的 WWDC 视频中,它可以直接运行。有人有想法吗?我正在使用 Xcode 11.2.1、Safari 13.0.3 和 macOS 10.15.1。
swift - 如何调用弹出框以显示在 Safari 应用程序扩展中?
我正在 xcode 中使用 swift 开发一个 safari 应用程序扩展。
在我的SafariExtensionHandler.swift
中,我声明了一个函数:
在我的SafariExtensionViewController.swift
,
但是,当我单击 Safari 工具栏中的图标时,什么都没有显示,也没有错误。有人帮忙吗?我对 safari 应用程序扩展和苹果系列开发很陌生。
swift - 无法使用 Calendar.current.dateComponents 检查经过的时间
我想检查从一个时间戳到现在经过了多少秒。我有这个:
但我收到了这个错误:
类型“任何”没有成员“第二”
将代码更改为:
将错误消息更改为:
无法使用类型为“([Calendar.Component],from:Any?,to:Date)”的参数列表调用“dateComponents”
我确实有这个:
这段代码在内部被调用SafariExtensionHandler
(如果重要的话)。知道是什么原因造成的吗?
javascript - 如何在 WKWebview 中监听网页 postMessage 事件?
我让我的 WKWebview 加载这样的网页:
在我的 localhost web 服务 js 文件中,我添加了一个发布消息事件
现在我尝试在我的快速代码中收听这个事件,这可能吗?
safari-extension - 我是否应该担心 Safari 在构建和运行我的应用程序扩展后大约 30 秒后关闭?
我正在将逻辑从 Chrome/Firefox Web 扩展的后台脚本移植到 Safari 应用扩展。我对 Xcode 很陌生,所以需要一些时间来学习如何解释和面对我遇到的问题。
我已经启动并运行了一个测试项目,我的内容脚本已成功注入 Safari,并且我更新了消息传递逻辑以说明 Safari App Extensions 中使用的不同 API。在 Swift 和 Javascript 之间来回发送消息是有效的。我正准备开始将 Javascript 逻辑迁移到 Swift,但是在我将方案切换到我的应用程序扩展以使用 Xcode 的控制台后,开始出现错误,并且 Safari 现在在我运行项目大约 30 秒后关闭,如果我在浏览器中什么都不做。如果我单击扩展的工具栏项或设置一个计时器来向 Safari 主体类发送消息,浏览器将保持打开几分钟,然后最终关闭。
通过大量搜索,我只找到了一些可能与我正在经历的事情相关的线程,所以我不知道从这里去哪里。StackOverflow 上的一篇文章提到“如果 Xcode 调试器没有收到来自内容脚本的任何事件,它倾向于终止扩展进程”(对于 hello world 项目,safari 应用程序扩展在几秒钟后崩溃),但我不是确定这是否是我这边发生的事情。
让这更令人困惑的一件事是我看到最多的错误消息是:“Safari[2803:95905] [Process] kill() 返回了意外错误 1。” 这很令人困惑,因为我在网上发现了很多帖子提到这是 WKWebViews 的一个已知错误,但这些帖子都没有提到 Safari 应用程序扩展。看起来大多数遇到该错误的开发人员都在为 iOS 应用程序编写代码。
是否有其他人遇到此错误消息和其他错误消息,这些错误消息似乎正在杀死他们的 Safari 应用程序扩展进程,从而关闭,甚至可能崩溃,运行他们的 Xcode 项目后创建的 Safari 实例?如果是这样,有没有找到解决问题的方法以及解决方案是什么?我尝试使用全新的 Safari App Extension 项目从头开始,并且出现了相同的错误。这都是正常的行为吗??
这是我每次 Safari 关闭/崩溃时看到的控制台日志的一部分(目前不确定是哪个)。有时信息更多,有时信息更少,但显示的错误大多始终相同:
控制台中的最后一行(上面的日志片段中未显示)始终显示“程序以退出代码结束:0”。这也让我感到困惑,因为我相信这告诉我扩展程序已关闭而没有任何错误。对于该行上方的所有错误消息,我不确定如何解释似乎是一个很大的差异。
任何人都可以提供的任何帮助将不胜感激!