Hallo Gast! Bitte registriere dich um Beiträge schreiben zu können und Zugang zu allen Bereichen zu bekommen. Hier registrieren

Auch ohne Registrierung direkt eine Support-Anfrage stellen: Zum Support-Fomular


Threema Desktop Client (Electron)
#1
Hi Leute,

Da ich Threema ungerne im Browser laufen lassen wollte, habe ich einen "nativen" Desktop Client auf Basis des Electron Frameworks erstellt. Mit dem Electron-Packager Fork Nativefier war das mit sehr wenig Aufwand möglich. Der Quellcode wurde noch etwas angepasst und um die unten aufgeführen Funktionen erweitert. Obwohl ich nur ein paar MSL (mIRC-Script-Language) Kenntnisse besitze, war es doch gar nicht so schwer den Code zu modifizieren. Jedoch suche ich noch einen oder zwei progammiererfahrene Mitstreiter, um das Project schneller voranzubringen und den Code zu optimieren. Von daher, melde sich jeder der Lust hat etwas beizutragen.

Den Quellcode habe ich bereits auf Github veröffentlicht. LINK

Screenshot Hauptfenster:

[Bild: screenshotauxd6.png]

Screenshot Benachrichtigung:

[Bild: threemaweb_notifynauke.png]


Was bereits funktioniert:
- Hauptfenster wird zum Tray Icon minimieren
- Doppelklick zum Verstecken/Anzeigen des Hauptfensters
- Kontext Menüs des Tray Icons (show, settings, hide, quit)
- Benachrichtung bei neuer Nachricht (kein Nachrichteninhalt, nur Username und Anzahl)
- Töne und Benachrichtigungen lassen sich abschalten
- Benachrichtigungstöne (verschiedene wählbar)
- Die Lautstärke des Benachrichtigungston lässt sich anpassen


Was noch nicht funktioniert bzw. wo ich etwas Hilfe gebrauchen könnte:
- Bei neuer Nachricht den Inhalt im Benachrichtigungsfester anzeigen

Geplante Features (Webentwickler für Hilfestellung gesucht):
- Per Benachrichrichtigungsfenster direkt zum Chat wechseln (momentan nur zum Hauptfenster möglich)
- Nachrichteninhalte im Benachrichtigungsfenster anzeigen
- Schnellantwort direkt über das Benachrichtigungsfenster
- Autostart (boot)
- Passwortmanager um nach dem Start direkt zum Smartphone zu verbinden ohne manuelle Eingabe des Passworts


PS: Da ich blutiger Programmier-Anfänger bin, solltet ihr was die Qualität des Codes angeht nicht zu viel erwarten. Zwincker


Feedback wäre natürlich auch nicht schlecht.
Zitieren
#2
Hi EinsteinXXL,

im Master sind die Benachrichtigungen schon vorhanden. Hast du diese Version gewrappt? Im aktuellen Release (1.0.5) sind sie jedoch nicht vorhanden, sie werden dann im nächsten Relase verfügbar sein.

EDIT
Ich habe mich vertan  Ängstlich Benachrichtigungen gibt es schon die ganze Zeit, nur die Benachrichtigungseinstellungen sind in der nächsten Version vorhanden.

Ggf kann Electron die Browserbenachrichtigungen in Windows/Linux/usw Benachrichtigungen umwandeln.

Mysterion
Zitieren
#3
Habe bisher nur die 1.0.5 gewrappt. Verstehe aber nicht genau was du meinst, denn Im Browser (Firefox) werden die Inhalte der Nachrichten (User, Text) angezeigt, nur eben bei meinem Client nicht.

In der main.js habe ich folgende Funktion gefunden.

Code:
_electron.ipcMain.on('notification', function () {
   if (!isOSX() || mainWindow.isFocused()) {
       return;
   }
   setDockBadge('●');
});


Sobald eine neue Nachricht eintrifft wird diese Funktion aufgerufen. In dieser hatte ich folgenden Code eingefügt (node.js electron-notifications script):


Code:
const notifier = require('electron-notifications')
notifier.notify('Username', {
 message: 'User messagetext',
 icon: iconPath,
 buttons: ['Dismiss'],
})



Nun müsste ich nur noch an den Threema Usernamen, den Text und das Userbild kommen, um es in die notifier.notify Funktion einzufügen. Wenn ich einen Event einfüge und msg bekomme ich leider nur den Text "2 Threema Nachrichten von MaxMustermann". Wie gesagt habe von Webtechniken und javascript an sich null Plan und könnte echt Hilfe gebrauchen. Zwincker


Code:
    _electron.ipcMain.on('notification', function (e, msg) {
         const notifier = require('electron-notifications')
         notifier.notify('test', {
         message: msg,
         icon: iconPath,
          buttons: ['Dismiss'],
         })
    });
Zitieren
#4
Ich glaube so sehr reden wir nicht aneinander vorbei Zwincker

Ohne Electron genauer zu kennen, denke ich anhand des Codes du willst sowas in die Richtung:

   

Bloß mit dem Threema Tray-Icon und dem Text/Icon usw. wie er in der nächsten Version von Threema Web verfügbar sein wird:

   

Oder? Hast du den Code deiner Electron-Anwendung auf Github/Gitlab oder so? Dann könnten ich und andere da ggf mithelfen.

Auf Github gibt es auch einen Feature request bzgl. einer (offiziellen) Electron-App.

Mysterion
Zitieren
#5
Bitte löschen! Beitrag wurde nach oben verschoben.
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Threema Desktop Client - openMittsu ThE_-_BliZZarD 397 180.396 31.12.2018., 11:21
Letzter Beitrag: schlingo
  Threema Desktop Version für Mac silmarillion 18 8.885 31.03.2018., 19:59
Letzter Beitrag: andyg
Information THREEMA WEB CLIENT PROTOTYPE mittels SaltyRTC Simon G. 87 98.971 20.01.2018., 13:23
Letzter Beitrag: threemat
  Emojis im Web Client fehlen in der (Android) App + Anleitung zur Selbsthilfe killathe 3 2.126 29.03.2017., 22:20
Letzter Beitrag: killathe
Question Warum gibts keinen Desktop Clienten ? Wolfseye 8 5.524 30.09.2016., 21:14
Letzter Beitrag: hoover