作者:huangxianghuo127 | 来源:互联网 | 2022-12-04 07:58
我有网络扩展,目前运行在Chrome,Firefox和Opera上.现在我想知道是否有一种方法可以使用相同的代码来构建Safari App Extension,可能类似于PhoneGap(在Safari App Extension项目中包装所有现有的JS代码),或者有一些限制,例如Javascript的标签处理和一些事情只需要用本机代码编写.
谢谢
1> Emmanuel Sel..:
您应该能够重用Web扩展中的内容脚本(但您需要重写代码才能发送/接收带有"背景"的消息).必须在Swift或Objective-C中重写后台脚本.
你需要开发:
Mac主机应用程序(将作为扩展程序的伴侣):Swift或Objective-C(此应用程序必须具有通过Apple审核的最低功能 - 请查看Apple应用程序的Apple指南)
扩展:在Swift或Objective-C + HTML/JS中(和其他浏览器一样)Swift(或Obj-C)中用于扩展的代码相当于Web Extensions中的后台页面.它将控制工具栏按钮,扩展的生命周期,并可以与注入的脚本交谈.
您在Apple网站上有一个(小)示例:https://developer.apple.com/documentation/safariservices/safari_app_extensions?changes = _2&language = objc
您不应再使用Extension Builder(可从Safari中的Developer菜单访问),因为这仅适用于旧版(纯JS)扩展.所以你需要进入XCode.
最后,但并非最不重要的是......与Safari旧版扩展程序相比,Safari App Extensions"有点"受限(例如,您无法以编程方式打开工具栏弹出窗口,就像使用Chrome网络扩展程序一样其实).