Vimari: 在 Safari 扩展商店中获取可用扩展的状态

创建于 2018-07-11  ·  37评论  ·  资料来源: televator-apps/vimari

我刚刚注册了 Apple Developer Program,我将在将代码发送以供审核之前研究需要对代码进行哪些更改。

我会在这个问题上让你更新!


更新
阅读完整问题的上下文。

去做

  • [ ] 设置
  • [ ] 可以在新标签页中打开多个链接
  • [ ] 弄清楚如何分发扩展
  • [ ] 在新标签页上打开什么网站? 空字符串不起作用所以我们需要其他东西,理想情况下相当于其他浏览器中的about:config

最有用的评论

嘿大家,

正如我在本期前面提到的,过去几个月我一直在处理一些个人问题,但现在情况好多了! 由于我提高了我的生活质量,我更忙于远离计算机的活动,所以我没有那么多时间和精力投入到开源中。 我希望能找到激励的火花,让设置的东西走出门外,并尽快将扩展发布到 App Store。

我希望所有捐款的人都不会觉得自己受到了任何形式的欺骗。 谢谢大家的耐心和理解❤️

所有37条评论

阅读 Apple 的文档,它们很棒。 看起来代码需要封装在 macOS 应用程序中,但它没有说明是哪种类型。 我现在会忙几天,但会尽量挤进一些这项工作。

如果有人有这方面的经验或想提供帮助,请告诉我。

现在已经弄乱了一段时间,伙计..文档正在杀死我。 我很好奇他们如何期望每个人将他们的 Safari Extensions 迁移到 Safari App Extensions 以及这个没有任何示例的糟糕文档。 迁移所有扩展需要很长时间:/

无论如何,我现在已经启动并运行了一些东西,我可以使用扩展程序,有点,但我需要了解加载扩展程序的不同步骤,然后再继续进行。 此外,我还没有找到任何支持扩展设置的支持,如果这是真的,那会很糟糕。

此外,我认为我们可以避免在 App Store 上安装扩展程序,但我还不确定。 我在一些论坛上读过,但没有更仔细地研究过。 这意味着我们有即时发布,但缺点是你必须到 Github 下载它 - 而不是打开 App Store。 将进一步调查此事。

我现在有一个可以使用 Safari 12 的版本。 这是一个非常hacky的解决方案,但它有效。 但是,除非您在代码中更改设置,否则无法更改设置。

关注我的 PR #104 中的进度。

我将 PR 与其中的 App Extension 合并。 我提供了有关如何安装它的说明。 请升级到 macOS Mojave 的每个人按照步骤操作,如果有什么不适合您,请告诉我们。 我将继续编写代码以使其更好,但现在您将拥有扩展的基本功能。

Ping 到目前为止参与此操作的每个人,以便我们可以得到一些关于此的反馈:
@jad @jaredmichaelwilliams @olivierlefloch @afarrell @weirdfishes @LiYunyang @pcejrowski @lamons @hcgatewood @LeonardCohen @ovisan @jezkline @danielcompton @guyht

这是说明

谢谢。

我在莫哈韦沙漠 (18A326h)。 当我构建项目时,有一个错误:

错误:任务失败,退出 1 信号 0 {
/usr/bin/codesign '--force' '--sign' '0CA31562965A44B984D08063E858CC715E0B0B34' '--verbose' '/Users/liyunyang/Library/Developer/Xcode/DerivedData/virkzarydfyughmari应用程序/内容/框架/libswiftAppKit.dylib'
}

@LiYunyang您是否尝试过两种解决方案中的任何一种?

在花费更多时间之后,我不确定我们是否能够迁移所有功能,甚至不能迁移一些基本功能:(。除非您使用弹出窗口或工具栏,否则 API 非常有限。我不”不明白为什么,我正在尽我最大的努力寻找信息,但由于这是如此新的 + Apple 糟糕的文档,所以没有。就像通过弹出窗口/工具栏点击打开一个新标签是微不足道的,否则是不可能的。Apple 将杀死大部分这种方法的当前扩展。我会继续尝试,但不能承诺任何事情。

谢谢@simeg。 我已经使用我自己的开发人员证书成功构建了它,并且它可以在 macOS 10.13.6 High Sierra 上与 Safari 12 一起使用。,

@akrabat我很高兴它对你

是的。 与证书相关的构建出错,所以我在下拉列表中选择了我的。

经过几天的休息并获得一些帮助后,我设法找到了一些信息,我认为这些信息将使我们能够迁移比我最初预期的更多的功能! 那么现在我的雷达是什么:

  • 迁移所有功能
  • 确保可以在没有开发人员证书的情况下安装扩展。 如果您尝试过但失败了,如果您可以在此处发布错误消息会很有用,因为现在我不确定如何解决此问题

[咆哮] [我不是唯一受挫的开发者](https://forums.developer.apple.com/thread/62410),似乎是这样。 我按照 Apple 员工的建议做了,我提交了一份错误报告,要求提供具有更多功能的 API。 它正在寻找稻草,但我不知道还能做什么。希望 Apple 会意识到他们正在扼杀 Safari 的扩展生态系统并更改 API 并编写更好的文档。 [/咆哮]

以下是自述文件中指定的功能:

f 切换链接
F 切换链接(在新标签中打开链接)
k 向上滚动
j 向下滚动
h 向左滚动
l 向右滚动
u 向上滚动半页
d 向下滚动半页
gg 到页面顶部
G 转到页面底部

H 历史回溯
l 历史转发
重新加载
w 下一个标签
q 上一个选项卡
x 关闭当前选项卡并转到左侧选项卡
X 关闭当前选项卡并转到右侧选项卡
t 打开新选项卡(这个

带有删除线的行在带有当前 API 的 Safari App Extensions 中不起作用,这很糟糕。 我还需要弄清楚如何管理设置。 我很确定它可以完成,但可能需要一些时间。 但是现在这项工作已经完成,我可以专注于通过下载以及将来在 App Extension Store 中为每个人提供 vimari。

很抱歉,你们中的许多人为获得 Safari 12 中可用的 100% 功能而捐款,但我无能为力来更改 API :( 我希望你们理解,我仍然致力于使这个扩展变得更好。

FWiW,可用的对我来说是关键的。 虽然我无法让F工作并且不得不将它重新映射到t

@akrabat一切都还没有合并到 master 中,所以这是意料之中的。

谢谢@simeg! 它正在我的 Mojave 机器上运行。 (令人惊讶的是,我没有对我以前的设置进行任何更改,它只是自行解决。)

@LiYunyang我很高兴听到它对你shift + t )或打开新的空标签( t )。 有一些与它们相关的小问题,但我正在努力解决。

@simeg我第一次使用我的 Apple ID(不是注册的开发者帐户)登录。

我刚刚将我一直在处理的分支合并到 master 中,这将启用两个新功能:在新选项卡中打开链接 ( shift + t ) 和打开新的空选项卡 ( t )。 它有一个现在什么都不做的工具栏,我正在尝试弄清楚如何进行设置,所以现在暂时忽略它。

因此,似乎必须更改 Xcode 中的签名帐户才能进行编译 - 在 xcode 中使用您的 Apple 帐户登录并使用它似乎工作得很好。
在切换或关闭选项卡时: @simeg是对的 - 现在 API 中不支持它,除非 Apple 添加它,否则我不知道有什么可做的。 Apple 允许 App 扩展访问活动选项卡,但不允许关闭它。 他们也不允许访问所有打开的选项卡。 API 毫无用处,我不知道为什么 Apple 会决定做这样的事情。 使用此 API,您可以打开选项卡,转到 url,使用一些新的图形元素覆盖活动页面,仅此而已

@Rahlir是的,我还有一些小问题需要解决。 不知道该怎么做。 我将很快将此发布到官方应用程序扩展中,希望这能解决这些问题。 我也很困惑为什么苹果会做这样的事情。 我认为它会严重降低 Safari 的使用率。

我现在想弄清楚的是设置。 我找不到任何关于推荐方式的信息,所以我试图通过查看他们的代码来了解其他人做了什么,但我进展缓慢。 会让你保持更新。

我现在想弄清楚的是设置。 我找不到任何关于推荐方式的信息,所以我试图通过查看他们的代码来了解其他人做了什么,但我进展缓慢。 会让你保持更新。

如果您正在谈论在您的原生 Swift 代码中存储设置,那么推荐的方式是UserDefaults

https://www.hackingwithswift.com/read/12/2/reading-and-writing-basics-userdefaults

显然,您必须在 Swift 中拥有保存/加载逻辑,然后通过事件将其传递给您的 JS。 (可能类似于“getSettings”“saveSettings”)

他们从扩展中删除了多少功能,这绝对是疯狂的。 如果他们真的想要好的扩展,他们将不得不实现 WebExtensions 标准,否则几乎没有人会转换/支持他们的 Safari 扩展。

如果您对 Safari App Extensions 有任何疑问,而您找不到相关文档,请随时 ping 我,我已经对这些扩展程序深入研究了大约 6 个月,现在每一秒都讨厌 Apple。


关于缺少选项卡功能的说明,您可以使用一种超级黑客的方式与选项卡进行交互:

苹果脚本。

在您的 Swift 代码中,您可以运行一个 AppleScript 脚本,该脚本将为您与选项卡进行交互。 可以更改当前选项卡的脚本示例:

tell front window of application "Safari"
    set current tab to tab ((get index of current tab) + 1)
end tell

tell front window of application "Safari"
        close current tab
end tell

首先tell将打开/激活当前选项卡右侧的选项卡。 第二个tell将关闭当前打开的选项卡。 因此,您可以为“下一个/上一个选项卡”和“关闭当前转到左/右”创建 AppleScript 函数。 你只需要弄清楚如何编写 AppleScript 来做你想做的事。

问题是我很确定调用 AppleScript 脚本会破坏应用程序沙箱,这意味着您无法将其提交到 App Extension Store。 所以你会坚持自己分发它。 (还是要签的)

公平地说,我还没有真正测试过这个选项卡方法,但过去我已经测试过从 Swift Safari 扩展运行 AppleScript 并使用它在 Safari 中做一些事情。 但是还没有发布任何使用它的东西。

编辑:

我有点开始怀疑自己,所以我继续使用此存储库中的当前版本进行了概念验证: https :

这使用我上面的 AppleScript 来更改选项卡。 代码使用NSAppleScript并且不必禁用应用程序沙箱。

但是您必须在您的权利文件中添加“临时例外权利”。

<key>com.apple.security.temporary-exception.apple-events</key>
<string>com.apple.Safari</string>

文档: https :

我不确定这会如何影响 App Extension Store 获得批准。

似乎是,如果您有正当理由并且 Apple 同意它会被批准: https :

@jdf221哇,你不知道我有多么感激有人问问题 - 我真的很感激。 我希望我现在有精力在这方面做更多的工作。 目前我在个人生活中正面临一些艰难的事情,但希望我能找到一些动力来重新开始这个项目。 我感谢大家的耐心。

我只是想突然出现并说如果它在应用程序商店中会很棒。

由于这个,我花了很长时间试图让它在成功之前编译: https :

很痛苦

嘿大家,

正如我在本期前面提到的,过去几个月我一直在处理一些个人问题,但现在情况好多了! 由于我提高了我的生活质量,我更忙于远离计算机的活动,所以我没有那么多时间和精力投入到开源中。 我希望能找到激励的火花,让设置的东西走出门外,并尽快将扩展发布到 App Store。

我希望所有捐款的人都不会觉得自己受到了任何形式的欺骗。 谢谢大家的耐心和理解❤️

@simeg我们能说服你分享出版权/开放开发团队吗? 我已注册为 Apple 开发人员,我很乐意将其发布并继续提供帮助。

嘿伙计们,今天早上我花了一些时间让它工作,它已经提交验证。 如果一切顺利,我预计我们将在几天内在 Mac App Store 上看到 Vimari。 我做了一个定制的叉子,合并了一个最近的 PR,其中包括一个漂亮的图标等。

但是,我想指出应用商店中已经存在另一种解决方案,并且似乎维护得更好。 请查看 sVim: https :

如果你只是想使用一个像 Vimium 一样工作的东西而不必自己构建它,我觉得这是 95% 的人想要的,只需从这里的 Mac App Store 下载: https://safari-extensions .apple.com/details/?id=com.flipxfx.svim-6Q2K7JYUZ6

如果你想要 Vimari,希望我们很快就能在 App Store 上看到它。

这被 App Store 拒绝,原因如下:

  1. 不适用于 MacOS 的暗模式。
  2. 扩展程序的窗口菜单中没有内容——这绝对是真实的。

如果有人非常致力于 Vimari,如果我们有希望进入 App Store 以使其更容易下载,我们需要在重新提交之前修复这些问题。 但我强烈建议查看 sVim,这也在我上面的评论中提到: https ://safari-extensions.apple.com/details/?id=com.flipxfx.svim-6Q2K7JYUZ6

@nchase ,在下一版本的 macOS 中,它不会遭受与此扩展相同的命运吗? Safari 扩展商店不是要消失了,获取扩展的唯一方法是捆绑在应用程序中吗?

啊。 出于某种原因,我认为它已经在 mac 应用程序商店中,对此感到抱歉。

sVim 似乎维护得更好(就在几个月前,有人在那里积极合并拉取请求,并且该扩展没有任何让我在提交 Vimari 时被拒绝的问题,所以看起来提升会更小把它放在需要的地方,但我可能是错的)。

根本没看代码,真的。

@danielcompton你有兴趣成为 Vimari 的冠军吗? (如果您这样做了,我可以将到目前为止所做的更改推送到我的遥控器,您可以在那里接听。)

是的,我已经考虑过这个问题,并且正在本地运行我自己的构建,它合并了一些 PR。 我很乐意尝试将它带到商店。 我还认为从长远来看,让 Safari 构建更紧密地基于上游项目是好的,这样我们就可以利用(并贡献)原始代码库中的改进。

厉害了😄

你对 sVim 和 Vimari 有什么看法吗? (即您是否挖掘得足够深,以便对每个的代码和架构发表意见?)

直到你提到它,我才知道 sVim,但它也源自 Chrome 插件: cVim ,它拥有约 3 万用户。 从Vimari导出Vimium其中有30万〜用户。 我也在 Chrome 中使用 Vimium。

cVim 解释了一些差异,尽管这些五年了,而 Vimium 现在可能已经有了一些或全部。 列出的功能对我来说都不是那么重要,尽管我可以理解人们为什么想要它们。

我现在真的无法对它们进行更明智的比较,你有什么想法?

我也在 Chrome 中使用 Vimium,这就是我发现 Vimari 的方式:)

取决于从 Vimium 移植功能的难易程度,我认为它仍然是我的第一选择,因为它是如此充满活力和活跃。

几年前,我能够写出一个合并到 Vimium 的拉取请求,无需大量工作(即代码非常清晰,易于理解和修改,再次看一眼 Vimium,它似乎仍然很小,易于理解——我猜它是用咖啡脚本写的,这是一个小障碍,但值得一提)。

从远处看,移植功能/保持平等似乎不应该是可怕的🤷‍♂️

我认为真正的工作是让这个项目为 App Store 做好准备。 上周我花了 90 分钟做这件事,并且比预期的更进一步,但没有预料到我们被拒绝的问题。

嘿大家,

2018 年 1 月,我承诺将这个扩展放在 App Store 上,人们为这个目标捐款。 我想向你们这些捐款的人道歉; 老实说,我认为我有精力和毅力做到这一点,但发生的事情让我的注意力转向别处。 正如我之前提到的,我在个人生活中遇到了一些麻烦,这让我再次将感觉良好置于其他任何事情之上。 我现在感觉又好了🙂,如果有人想退钱,我很乐意退还。 给我发电子邮件 [_removed 因为一段时间没有行动_] 退款! 我为没有完成我的承诺而感到难过,我不想让任何人感到受骗。

至于项目的进展,我不会继续这个目标。 我很高兴看到其他人挺身而出,如果我能提供任何支持,请告诉我。 该项目的所有者不再活跃,但我也许可以让您与他联系以访问 repo。

我很高兴看到其他人挺身而出,如果我能提供任何支持,请告诉我。 该项目的所有者不再活跃,但我也许可以让您与他联系以访问 repo。

谢谢,我已经给 Guy 发送了一封关于接管这个项目的维护并将其放入 App Store 的电子邮件。 我希望在 Catalina 的发布日期之前能得到一些东西,以便升级者有一些东西可以转移。

大家好,

我计划将 Vimari 转移到@danielcompton 。 我已经打开了一个单独的问题来讨论转移前的任何最后评论 - 请在 #137 中发表任何评论

关闭支持#139。

此页面是否有帮助?
0 / 5 - 0 等级