Nativefier - Allons plus loin avec les web apps

application 10 oct. 2023

Nous avons vu dans Création de web app comme créer des Web Apps pour les sites.

Nous allons voir ici comment créer des web apps pour Netflix, Disney+ et compagnie, qui seront en flux HD.

Voici les options à rajouter à la commande de création de Web Apps, par exemple pour Netflix :

nativefier -n "Netlix" "https://Netflix.com/" -e "15.3.5" --widevine --enable-es3-apis --icon "./netflix-icon.png"

Il faut en effet rajouter :

--widevine : pour la compatibilité des DRM
-e "15.3.5" : La version electron compatible avec Widevine
--enable-es3-apis : force l'activation de WebGL 2.0

Le script :

J'ai fini par créer un script qui permet d'automatiser toutes ces actions avec le choix de rajouter des options supplémentaires ou non en fonction de la Web Apps à créer.

GitHub - Wolf117Warrior/NativeByBash: Ce projet contient un script Bash pour automatiser le processus de création d’applications de bureau à partir de sites Web en utilisant Nativefier. Nativefier est un outil de ligne de commande qui vous permet de créer facilement une application de bureau pour n’importe quel site web avec une configuration minimale.
Ce projet contient un script Bash pour automatiser le processus de création d'applications de bureau à partir de sites Web en utilisant Nativefier. Nativefier est un outil de ligne de commande…

Une liste d'option qui peuvent être rajoutés à la commande, certaines seront rajoutés au script pour compléter les options disponibles.

====== App Creation Options ======
  -p, --platform          the operating system platform to build for
    [chaîne de caractères] [choix : "darwin", "linux", "mac", "mas", "osx", "win32", "windows"] [défaut : current operating system]
      --portable          make the app store its user data in the app folder; WARNING: see
                          https://github.com/nativefier/nativefier/blob/master/API.md#portable for security risks
                                                                                                         [booléen] [défaut : false]
      --upgrade           upgrade an app built by an older version of Nativefier
                          You must pass the full path to the existing app executable (app will be overwritten with upgraded version
                          by default)                                     

====== App Window Options ======
      --always-on-top          enable always on top window                                               [booléen] [défaut : false]
      --background-color       set the app background color, for better integration while the app is loading. Example value:
                               '#2e2c29'                                                                     [chaîne de caractères]
      --bookmarks-menu         create a bookmarks menu (via JSON file); See
                               https://github.com/nativefier/nativefier/blob/master/API.md#bookmarks-menu    [chaîne de caractères]
 
      --full-screen            always start the app full screen                                          [booléen] [défaut : false]
      --height                 set window default height in pixels                                          [nombre] [défaut : 800]
  -m, --show-menu-bar          set menu bar visible                                                      [booléen] [défaut : false]
      --max-width              set window maximum width in pixels                                     [nombre] [défaut : unlimited]
      --max-height             set window maximum height in pixels                                    [nombre] [défaut : unlimited]
      --maximize               always start the app maximized                                            [booléen] [défaut : false]
      --min-height             set window minimum height in pixels                                            [nombre] [défaut : 0]
      --min-width              set window minimum width in pixels                                             [nombre] [défaut : 0]
                               opened
      --single-instance        allow only a single instance of the app                                   [booléen] [défaut : false]
      --tray                   allow app to stay in system tray. If 'start-in-tray' is set as argument, don't show main window on
                               first start                            [choix : "true", "false", "start-in-tray"] [défaut : "false"]
      --width                  app window default width in pixels                                          [nombre] [défaut : 1280]


====== Internal Browser Options ======
      --file-download-options        a JSON string defining file download options; see https://github.com/sindresorhus/electron-dl
      --lang                         set the language or locale to render the web site as (e.g., "fr", "en-US", "es", etc.)
                                                                [chaîne de caractères] [défaut : os language at runtime of the app]
  -u, --user-agent                   set the app's user agent string; may also use 'edge', 'firefox', or 'safari' to have one
                                     auto-generated                                                          [chaîne de caractères]

====== Internal Browser Cache Options ======
      --clear-cache      prevent the app from preserving cache between launches                          [booléen] [défaut : false]
      --disk-cache-size  set the maximum disk space (in bytes) to be used by the disk cache    [nombre] [défaut : chromium default]

====== URL Handling Options ======
      --block-external-urls   forbid navigation to URLs not considered "internal" (see '--internal-urls').  Instead of opening in
                              an external browser, attempts to navigate to external URLs will be blocked [booléen] [défaut : false]
      --internal-urls         regex of URLs to consider "internal"; by default matches based on domain (see
                              '--strict-internal-urls'); all other URLs will be opened in an external browser
                                                                [chaîne de caractères] [défaut : URLs sharing the same base domain]

====== Auth Options ======
      --basic-auth-password  basic http(s) auth password                                                     [chaîne de caractères]
      --basic-auth-username  basic http(s) auth username                                                     [chaîne de caractères]

====== Graphics Options ======
      --disable-gpu           disable hardware acceleration                                              [booléen] [défaut : false]
      --enable-es3-apis       force activation of WebGL 2.0                                              [booléen] [défaut : false]
      --ignore-gpu-blacklist  force WebGL apps to work on unsupported GPUs                               [booléen] [défaut : false]

====== (In)Security Options ======
      --ignore-certificate                              ignore certificate-related errors                [booléen] [défaut : false]
      --insecure                                        enable loading of insecure content               [booléen] [défaut : false]

====== Platform-Specific Options ======
      --app-copyright             (macOS, windows only) set a human-readable copyright line for the app; maps to `LegalCopyright`
                                  metadata property on Windows, and `NSHumanReadableCopyright` on macOS      [chaîne de caractères]
      --app-version               (macOS, windows only) set the version of the app; maps to the `ProductVersion` metadata property
                                  on Windows, and `CFBundleShortVersionString` on macOS                      [chaîne de caractères]
      --bounce                    (macOS only) make the dock icon bounce when the counter increases      [booléen] [défaut : false]
      --build-version             (macOS, windows only) set the build version of the app; maps to `FileVersion` metadata property
                                  on Windows, and `CFBundleVersion` on macOS                                 [chaîne de caractères]


====== Debug Options ======
      --crash-reporter  remote server URL to send crash reports                                              [chaîne de caractères]
      --verbose         enable verbose/debug/troubleshooting logs                                        [booléen] [défaut : false]
      --quiet           suppress all logging                                                             [booléen] [défaut : false]

Other Options
      --version  Affiche le numéro de version                                                                             [booléen]
      --help     Affiche l'aide                                                                                           [booléen]

Je mettrai à jour cet article pour des compléments d'information ou autres.

Source :
Dépôt github

Mots clés

test