Falco
(Falco)
12 نوفمبر 2022، 5:44م
1
بدءًا من اليوم، يتيح إشعار Discourse Chat للمستخدمين الرد مباشرةً في الإشعار نفسه
واجهة المستخدم لهذا تختلف على كل نظام تشغيل، حيث تتكامل مع نظام الإشعارات الأصلي.
ساعات ذكية تعمل بنظام Android Wear OS
Android
Windows
إذا سار كل شيء على ما يرام، فإن الخطوات التالية المحتملة لهذه الميزة ستكون:
إضافة دعم ردود الفعل المضمنة
إرسال الردود المضمنة كـ “رد على” الرسالة التي يتم الرد عليها
إضافة دعم الردود المضمنة للمواضيع / المشاركات
معالجة الأخطاء عند إرسال الردود المضمنة، سواء كانت أخطاء في الشبكة أو منطق الأعمال.
تدويل زر الرد والمربع النصي المؤقت
27 إعجابًا
هذه إضافة رائعة. لقد كنت مرتبكًا جدًا عندما فكرت، “واو، صورة مثال ديناميكية تعرض اسم المستخدم الخاص بي”، ثم أدركت أنها مجرد لقطة شاشة لاسم المستخدم الخاص بي.
أنا أحب مدى سرعة نمو ميزة الدردشة هذه - لا أطيق الانتظار حتى يحين الوقت المناسب لإضافتها إلى مجتمعنا. بقدر ما أحب Discord، من حالة استخدام أعمالنا، لا أريد حقًا إدارة منصة أخرى وتقسيم مستخدمي إلى أجزاء.
ستكون ميزة لطيفة هي القدرة على تحديد رسالة دردشة واحدة أو أكثر وفصلها إلى موضوع.
9 إعجابات
متى سيحدث دعم نظام iOS؟ لا يزال يتعين عليّ استخدام تطبيق طرف ثالث للحصول على إشعارات فورية مع محتوى أيضًا.
إعجابَين (2)
Falco
(Falco)
12 نوفمبر 2022، 11:02م
7
لا فكرة، هذا يعود إلى آبل. نحن نطبق المعايير المفتوحة للويب وهي تعمل على كل نظام تشغيل يطبق المواصفات، مثل ويندوز، أندرويد، كروم أو إس، إلخ. يمكن للمرء أن يأمل أنه عندما/إذا قامت آبل بتطبيق WebPush في عام 2023، فإنها ستفعل ذلك بشكل صحيح، ولكن كل ما يمكننا فعله هو الأمل.
15 إعجابًا
Falco
(Falco)
11 مايو 2026، 8:12م
8
كان هذا معطلاً لفترة من الوقت، وقد قمت بإعادة دعمه بطريقة أكثر قوة
main ← chat-push-quick-reply
merged 03:36PM - 29 Apr 26 UTC
**Previously**, the "Reply" action on chat web push notifications was silently b… roken — the service worker's chat URL regex stopped matching when chat routes moved to `/chat/c/:slug/:id`, and the chat-specific code lived in core with no thread support, URL encoding, or error handling.
**In this update**, generalize the core service worker into a plugin-extensible action registry, move chat reply handling into the chat plugin with proper thread/encoding/fallback support, and convert single-emoji replies into reactions on the source message (falling back to a regular message post on any failure).
## Architecture
Core (`app/views/static/service-worker.js.erb`) now exposes:
```js
self.registerNotificationActionHandler(action, handler);
```
Push payloads can carry `actions` (Web Notifications API format) and `action_data` (an arbitrary object surfaced to the handler at `event.notification.data.actionData`). The click handler dispatches by `event.action` name and falls back to the existing focus-or-open behavior when no handler matches or a handler throws.
`PushNotificationPusher` forwards `actions` / `action_data` when present.
The chat plugin owns its own service worker (`plugins/chat/assets/javascripts/service-worker.js`), registered via `register_service_worker`. It registers a `chat-reply` handler that:
1. Fetches a CSRF token.
2. If the reply is a single emoji grapheme (detected via `Intl.Segmenter`, with a `\p{Extended_Pictographic}` regex fallback), `PUT`s to `/chat/:channel_id/react/:message_id`.
3. Otherwise — or if the reaction request fails — `POST`s to `/chat/:channel_id` with proper `URLSearchParams` encoding and the source `thread_id` if present.
4. If everything fails, opens the channel so the user can retype.
`Chat::Notifier.push_notification_reply_action(chat_message, user)` builds the payload in the user's locale with `channel_id`, `message_id`, and optional `thread_id`.
`Chat::MessageReactor#react!` resolves raw Unicode via `Emoji.unicode_replacements[emoji] || emoji` before validation, so smartwatch quick-reply chips (which send raw Unicode like `👍🏽` or ZWJ sequences) just work. Existing shortcode callers are unaffected.
## Why this matters
Smartwatch notification UIs expose a single "reply" affordance with canned chips that include short text and emoji. The user can't choose between "send as message" and "react"; they tap a chip and a string comes through. Treating a single-grapheme pictographic reply as a reaction matches user intent on the watch UX without any new product surface.
## Test plan
- [ ] On a chat-enabled site, subscribe to web push notifications.
- [ ] Have another user post a message that mentions you, or a watched channel message.
- [ ] On the resulting OS notification, confirm a "Reply" action button appears.
- [ ] Type a text reply and submit — verify it posts as a message in the right channel/thread.
- [ ] Submit a single emoji (e.g. 👍 or 👍🏽 with skin tone) — verify it lands as a reaction on the source message instead of posting a message.
- [ ] Submit a ZWJ sequence (e.g. 👨👩👧) — verify it lands as a reaction (or falls back to message post if not in the emoji DB).
- [ ] Sign out / let session expire and submit a reply — verify the channel opens as a fallback rather than silently failing.
- [ ] Watch via Wear OS / watchOS quick-reply chips and confirm the same behavior end-to-end.
الآن نقوم أيضًا بتسجيل الردود التي تتكون من رمز تعبيري واحد كرد فعل، وندعم مواضيع الدردشة! .
5 إعجابات
واو! هذا رائع حقًا! هل هناك خطط لفعل الشيء نفسه مع المواضيع؟
إعجاب واحد (1)
سؤال صغير: هل يعمل على أجهزة آبل؟
Falco
(Falco)
قسَّم هذا الموضوع في
16 مايو 2026، 4:02م
11