1.1. fejezet, Natív alkalmazás hívás
Beküldte pzoli - 2022, április 25 - 7:25du
Minta programok letöltése
mkdir ~/firefox-extensions/ cd ~/firefox-extensions/ git clone https://github.com/SphinxKnight/webextensions-examples.git
A natív alkalmazásokat regisztrálni kell a Manifest file locations-ben leírt helyen.
Natív alaklamzás regisztrálása Linuxon
A native-application regisztráláshoz létre kell hozni a native-messaging-hosts könyvtárat
mkdir ~/.mozilla/native-messaging-hosts/ nano ~/firefox-extensions/webextensions-examples/native-messaging/app/ping_pong.json cp ~/firefox-extensions/webextensions-examples/native-messaging/app/ping_pong.json ~/.mozilla/native-messaging-hosts/
Natív alaklamzás regisztrálása Windows-on
Registry kulcs mutasson a ping_pong.json-ra
Az Add-on futtatása
Böngészőben a about:debugging#/runtime/this-firefox oldalt betöltve lehet az "Ideiglenes kiegészítő betöltése" gombbal betölteni a manifest.json fájlt, vagy a nodejs web-ext scripttel indítható a böngészőt:
cd ~/firefox-extensions/webextensions-examples/native-messaging/add-on web-ext run
Böngészőben engedélyezni kell a /További eszközök/Böngészőkonzol (Ctrl+Shift+J) ablak beállításainál a "Tartalomüzenetek megjelenítése" menüpontot, hogy láthatók legyenek az üzenetváltások.
Forrás: Native-messaging extension
C# kód az STD-In/Out kezeléséhez
using System; using System.IO; using System.Text; namespace Homework4STDInOutStream { class Program { static void Main(string[] args) { using (Stream stdin = Console.OpenStandardInput()) using (Stream stdout = Console.OpenStandardOutput()) { byte[] buffer = new byte[2048]; while (true) { byte[] inMsgSize = new byte[4]; Int32 readedBytes = stdin.Read(inMsgSize, 0, inMsgSize.Length); if (readedBytes > 0) { Int32 inMsgSize32 = BitConverter.ToInt32(inMsgSize); File.AppendAllText("c:\\var\\log.txt", "inMsgSize32=["+ inMsgSize[0] + "," + inMsgSize[1] + "," + inMsgSize[2] + "," + inMsgSize[3] + "]"); byte[] buffer = new byte[inMsgSize32]; readedBytes = stdin.Read(buffer, 0, buffer.Length); if (readedBytes > 0) { File.AppendAllText("c:\\var\\log.txt", "readedBytes=[" + readedBytes + "]"); byte[] outMsgSize = BitConverter.GetBytes(readedBytes); stdout.Write(outMsgSize, 0, outMsgSize.Length); stdout.Write(buffer, 0, readedBytes); StringBuilder sb = new StringBuilder(); String log = System.Text.Encoding.Default.GetString(buffer, 0, readedBytes); sb.Clear(); File.AppendAllText("c:\\var\\log.txt", log + "\r\n"); } } } } } } }
C# kód tesztelése
A DOS Terminál UTF-8 karakterkódolás beállításával kezdődik a .bat fájl
- A hozzászóláshoz be kell jelentkezni