Расширение Safari CSS Впрыск не загружается - PullRequest
0 голосов
/ 14 февраля 2020

Я построил расширение Safari в XCode с нуля. Основная цель состояла в том, чтобы скрыть рекомендации видео на YouTube при просмотре чего-либо - я решил, что смогу сделать это, используя некоторые свойства css.

Для целей тестирования я включил еще несколько модификаций стиля.

/* Testing */
body {
    background: red !important;
    color: blue !important;
}

/* Hide column with video recommendations */
#secondary {
    display: none !important;
}

По некоторым причинам эти css свойства, которые я сохранил в ноздиле. css, не влияют на сайт.

Я следовал Руководству Apple при введении CSS Таблицы стилей как можно точнее, в основном путем редактирования файла Info.plist:

  • Я добавил файл css в качестве ссылки в NSExtension -> SFSafariStyleSheet -> Array -> Dictionary with Key Style Sheet (обратите внимание на пробел) и значение nostyle.css (файл в том же каталоге, что и «script. js», который поставляется вместе с настройкой проекта по умолчанию)
  • Я добавил *.youtube.com к список разрешенных доменов (среди прочих URL-адресов для целей тестирования)

Я получил скрипт. js файл для вывода сообщений в моей консоли, хотя и с несколько непоследовательной скоростью.

Я не т отключил любые другие файлы (кроме того, что я добавил несколько иконок в Assets.xcassets). Ниже приведено полное содержимое моего файла Info.plist в папке Extension . Он также содержит элемент панели инструментов (SFSafariToolbarItem), который отображается в строке меню в Safari, но ничего не делает при нажатии (как и предполагалось).

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>$(DEVELOPMENT_LANGUAGE)</string>
    <key>CFBundleDisplayName</key>
    <string>DistractionFreeYouTube Extension</string>
    <key>CFBundleExecutable</key>
    <string>$(EXECUTABLE_NAME)</string>
    <key>CFBundleIdentifier</key>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>$(PRODUCT_NAME)</string>
    <key>CFBundlePackageType</key>
    <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleVersion</key>
    <string>1</string>
    <key>LSMinimumSystemVersion</key>
    <string>$(MACOSX_DEPLOYMENT_TARGET)</string>
    <key>NSExtension</key>
    <dict>
        <key>SFSafariStyleSheet</key>
        <array>
            <dict>
                <key>Style Sheet</key>
                <string>nostyle.css</string>
            </dict>
        </array>
        <key>NSExtensionPointIdentifier</key>
        <string>com.apple.Safari.extension</string>
        <key>NSExtensionPrincipalClass</key>
        <string>$(PRODUCT_MODULE_NAME).SafariExtensionHandler</string>
        <key>SFSafariContentScript</key>
        <array>
            <dict>
                <key>Script</key>
                <string>script.js</string>
            </dict>
        </array>
        <key>SFSafariToolbarItem</key>
        <dict>
            <key>Action</key>
            <string>Command</string>
            <key>Identifier</key>
            <string>Button</string>
            <key>Image</key>
            <string>ToolbarItemIcon.pdf</string>
            <key>Label</key>
            <string>Distraction Free</string>
        </dict>
        <key>SFSafariWebsiteAccess</key>
        <dict>
            <key>Allowed Domains</key>
            <array>
                <string>*.youtube.com</string>
            </array>
            <key>Level</key>
            <string>Some</string>
        </dict>
    </dict>
    <key>NSHumanReadableCopyright</key>
    <string>Copyright © 2020 (my name). All rights reserved.</string>
    <key>NSHumanReadableDescription</key>
    <string>This extension hides the column of recommended videos when watching YouTube videos.</string>
</dict>
</plist>

Вот снимок экрана моего рабочего пространства.

XCode workspace, Info.plist is open

...