Embed Discourse in a native app?

Our company has native apps for iOS and Android. One of our goals is to bring people back to our apps frequently, and to spend a lot of time in our apps. (The app stores seem to prioritize apps that get a lot of usage.)

We have a pretty solid Discourse forum, but currently we just link out to the forum’s website from the app. iOS users who want to receive forum push notifications then have to download the Discourse app separately. (Android users can receive push notifications directly from the website, which is great, but in that case, they’re still using the website, and not our app.)

We’d like to make the Discourse forum a part of our existing iOS and Android apps, and especially to allow users to receive forum push notifications in our apps, without forcing people to download a separate app or to leave our app to use the forum. (I’m imagining that the implementation would be a web view, much like the Discourse iOS app.)

Is there a way to do something like this today? (I’m guessing not?)

3 إعجابات

It is possible, but note:

  1. You will have cookie / login problems at the moment, particularly on iOS, due to the way embedded Safari is currently working in iOS 12 and beyond.

  2. You could certainly consume the Discourse API in the native apps to grab Discourse notifications.

A full in-app webview will be more complicated than simply linking out, and implies more developer support for the native apps.

@sam may have other thoughts.

3 إعجابات

On Android the story is quite simple, spinning up a Chrome Custom Tab is super easy and it shares authentication with Chrome. Only big downside and reason our Android team members avoid using the Android app (and that we are considering killing the Android app) is cause opening a Chrome Tab is slow compared to PWA, so people prefer the PWA.

Being Android though you could possibly automate creating the PWA link and all that Jazz from your app which may be interesting.

On iOS the story is more complex due to Apple bugs.

We have the user API key system @pmusaraj will be working on improving per: Delegated authentication for Discourse Mobile app (which also includes adding documentation)

My recommendation here for you @dfabulich is to hold tight for a month or 2 while we redo our protocol and improve documentation.

8 إعجابات

How would push notifications work in this story? Would I have to poll? (I’d rather do proper remote pushes.)

I read somewhere that Chrome 72 now support Trusted web activities , which means you can now distribute PWAs in the Google play store. If it works well I think you will have more reason to kill the Android app.

It’s a bit involved, since you need the validation key, paying the Google fee, etc. But it does work.

إعجاب واحد (1)

Let me give one good reason not to: some people do not have a Google account and won’t have one. If the app would be distributed over F-Droid, it would be fine, but forcing people into Google is not a friendly move.

إعجابَين (2)

As long as you ensure that it works with Firefox as well is can also solve

Discourse as an open source application should always prefer open source solutions

Checking back in on this! What’s the story here?

Delegated auth is in, and our new login flow is pretty rock solid on the app. The protocols are all open.

إعجابَين (2)

Can you give me a pointer to documentation on this?

إعجاب واحد (1)

This is our current spec:

It could certainly use an improvement or 2 so edits on it totally welcome.

Canonical implementation is open source and available at: GitHub - discourse/DiscourseMobile: Discourse Mobile

3 إعجابات

فضولي جداً لمعرفة أين انتهى هذا. هل تمكن أي شخص من تضمين Discourse في تطبيقه للجوال عبر webview والاستفادة من الإشعارات؟

يحدث هذا من وقت لآخر، نحتفظ بمجموعة من التطبيقات ذات العلامات البيضاء للعملاء.

لسوء الحظ، فإن تكلفة اتباع هذا المسار هائلة. أود أن أقول… ضع في اعتبارك اتباع هذا المسار إذا كان لديك ميزانية تبلغ حوالي 20 ألف دولار أمريكي سنويًا للبناء/الصيانة/التصحيح.

إعجابَين (2)

لقد كنت أعمل على مشروع كهذا، لكن نعم المستودع العام قديم. إذا كنت ترغب في مساعدتي، يمكنك توظيفي.

@sam شكراً على كلمات التحذير هنا، حيث أنني على وشك الشروع في هذا المشروع.

لقد شجعتني رؤية أن مركز المناقشة يبدو أنه يقوم بذلك بالفعل - لماذا تتوقع مثل هذه التكلفة العالية؟ كنت أتخيل أنك تحتاج فقط إلى تشغيل العرض على الويب والمصادقة، ثم تكون الإشعارات شيئًا لطيفًا. ستكون هذه ميزة رائعة لإضافتها إلى تطبيقي الحالي، فقد قام فريقي بعمل عروض على الويب سابقًا.

هل هناك شيء لا أتوقعه وسيسبب الكثير من العمل / التحديثات؟

تاريخيًا، رأيت مقدار الجهد الذي بُذل في عرض الويب التافه لـ discourse hub.

على السطح، يبدو الأمر “سهلاً” ولكن بعد ذلك تحتاج إلى القلق بشأن 1000 تفصيل صغير.

  • تصغير اللوحة في الأسفل
  • المنحنى على جهاز iPhone
  • مؤشرات التحميل
  • تحديثات مستمرة لعرض الويب
  • فحوصات أمان Apple وعملية الموافقة على التطبيق
  • تصحيح الأخطاء المعقد … ماذا لو حدث شيء في عرض الويب وليس في الموقع

هذه ليست قائمة شاملة حتى، أنا متأكد من أن @pmusaraj و @kris.kotlarek يمكنهما استخراج 20 عنصرًا آخر.

التطبيقات صعبة للغاية في إتقانها ومكلفة للغاية. في هذه الأيام، يكون الدافع الوحيد القوي لبناء واحد هو لنظام iOS، وهو ليس رحلة سهلة.

5 إعجابات

لقد طرحت هذا السؤال في الأصل لأنني أردت الاحتفاظ بالمستخدمين في تطبيقي، لأنني أعتقد أن Apple و Google سيرسلان لي حركة مرور مجانية.

هل هذه المهمة أسهل (أو أصعب؟) في “Chrome Custom Tab” لنظام Android؟

هل من المعقول أن تقدموا مكتبة لنظام iOS تغلف WKWebView وتحل هذه المشكلة لنا؟ (يبدو أنكم قد تعاملتم بالفعل مع أكثر من 90٪ من العمل من خلال تنفيذ Discourse Hub.)

إعجاب واحد (1)

أود أن أقول إن أندرويد صعب “بشكل مختلف”. خاصة وأن نظام التشغيل نفسه لا يوفر البدائيات. من الصعب جدًا تبرير الجهد هناك عندما يكون تطبيق الويب التقدمي (PWA) جيدًا جدًا على أندرويد.

نحن نستخدم React Native ومكونات لتغليف WKWebView. تظل التعقيدات للأسف. يمكن أن تكون تحديثات React Native مؤلمة جدًا للعمل من خلالها تاريخيًا.

إعجابَين (2)

@sam مبرري للشروع في هذا يتعلق حقًا بإشعارات الدفع، وأيضًا لأن لدي تطبيقًا موجودًا يتيح لأعضائي بسهولة القيام بأشياء متعددة في نفس المكان (الدراسة لامتحانهم، والدردشة في المجتمع، والتسوق، وما إلى ذلك).

ولكن، يبدو أنه يمكنني جعلهم يضيفون تطبيق المجتمع كتطبيق ويب تقدمي (PWA)، ويمكنهم الحصول على إشعارات الدفع والتحديثات؟ هل سيدعم تطبيق الويب التقدمي إشعارات الدفع؟ تحديث: وجدت الإجابة هنا، يبدو أنه لا يدعم إشعارات الدفع.

أنا أبحث في خيار تطبيق الويب التقدمي (PWA) بشكل أكبر - ربما يمكنني حتى إضافة رابط “الانضمام إلى مناقشة المجتمع” في تطبيقي الأصلي الحالي، وسيكون هذا هو الرابط الصحيح لتنزيل تطبيق الويب التقدمي (PWA)؟

شكرًا!
جيمس