chabokpush / chabok-client-rn

Chabok react native wrapper
https://doc.chabokpush.com/react-native-bridge/introducing.html
5 stars 5 forks source link

ChabokMessageReceived وقتی که از برنامه خارج شده ایم #21

Open ahamidian opened 5 years ago

ahamidian commented 5 years ago

سلام وقتی که کاربر از برنامه خارج شده و اونو از بکگراند هم خارج کرده دیگه chabokEmitter ی که برای ChabokMessageReceived ست کردم کار نمیکنه چی کار باید انجام بدم تا وقتی کاربر بیرون از برنامه هم هست کار کنه؟

Husseinhj commented 5 years ago

روی چه پلتفرمی؟ اندروید یا iOS

ahamidian commented 5 years ago

اندروید

ahamidian commented 5 years ago
chabokEmitter.addListener(
            'ChabokMessageReceived',
            (msg) => {
               Toast.show("new notification");
            }
        );

وقتی برنامه بازه یا تو بکگرانده تست نمایش داده میشه و در غیر این صورت نه...

Husseinhj commented 5 years ago

وقتی برنامه بازه یا تو بکگرانده تست نمایش داده میشه و در غیر این صورت نه...

آیا شما تنظیمات پوش‌نوتیفیکیشن اندروید رو انجام دادین؟

بنظر میرسه با توجه به مواردی که گفتید، شما پوش‌نوتیفیکیشن دریافت نمی‌کنید و فقط پیام چابک رو دریافت می‌کنید زمانی که اپلیکیشن باز هست یا در بک‌گراند هست.

پیامی که شما دریافت میکنید به هنگامی که اپ در بکگراند است یا فورگراند،‌ پیام چابک هست. برای زمانی که اپ کیل هست باید تنظیمات پوش‌نوتیفیکیشن در پنل را بدرستی انجام بدید تا وقتی اپ کیل هست چابک اقدام به ارسال پوش‌نوتیفیکیشن کنه.

همچنین دقت کنید که بخش تنظیمات androidManifest پروژه اندروید رو حتما انجام داده باشید

ahamidian commented 5 years ago

آره این طور به نظر میاد که نوتیفیکیشن ها اصلا نمیرسه من تنظیمات رو به صورت کامل انجام دادم ... مشکل از کجا میتونه باشه؟

ahamidian commented 5 years ago

تو پنل توی نوتیف هایی که میزنم این پبام نمایش داده میشه: این پیام هنوز تحویل داده نشده است.

Husseinhj commented 5 years ago

دستگاهی که روش تست می‌کنین مدلش چی هست؟ بخش عیب‌یابی مستندات ما رو حتما مطالعه کنید

احتمالا دستگاه شما جز دستگاه‌هایی هست که در شرایط خاص امکان دریافت نوتیفیکیشن را نمی‌دهد.

ahamidian commented 5 years ago

هم روی نوکیا با اندروید۸ هم روی سامسونگ با اندروید ۷ تست کردم اون مسایل توی عیب یابی هم تست کردم ولی مشکلی نداشت... اون اپلیکیشن تست باید کار کنه دیگه؟

Husseinhj commented 5 years ago

اپلیکیشن starter منظورتون هست؟

اون چون ممکنه برنامه نویس‌ها تغییر بدن تنظیمات پنل رو حتما با اکانت خودتون تست کنین و اینکه senderId خودتون رو توی کد تغییر بدید

Husseinhj commented 5 years ago

من لاگ‌های اکانت شما رو چک کردم نوتیفیکیشن برای شما با موفقیت ارسال میشه آیا قطعه کد زیر رو توی manifest قرار دادید؟

<receiver
                android:name="com.google.android.gms.gcm.GcmReceiver"
                android:enabled="true"
                android:exported="true"
                android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE"/>
                <action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
                <category android:name="YOUR_APPLICATION_PACKAGE_ID"/>
            </intent-filter>
        </receiver>

اگر امکانش هست فایل manifest خودتون رو با رعایت کردن مسائل امنیتی خودتان اینجا قرار دهید

ahamidian commented 5 years ago
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.chabokstarterrnbridge">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <permission
            android:name="com.chabokstarterrnbridge.permission.C2D_MESSAGE"
            android:protectionLevel="signature"/>

    <uses-permission android:name="com.chabokstarterrnbridge.permission.C2D_MESSAGE"/>

    <application
            android:name=".MainApplication"
            android:label="@string/app_name"
            android:icon="@mipmap/ic_launcher"
            android:allowBackup="false"
            android:theme="@style/AppTheme">
        <activity
                android:name=".MainActivity"
                android:label="@string/app_name"
                android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
                android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
        <receiver
                android:name="com.google.android.gms.gcm.GcmReceiver"
                android:enabled="true"
                android:exported="true"
                android:permission="com.google.android.c2dm.permission.SEND">
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE"/>
                <action android:name="com.google.android.c2dm.intent.REGISTRATION"/>
                <category android:name="com.chabokstarterrnbridge"/>
            </intent-filter>
        </receiver>
    </application>

</manifest>
Husseinhj commented 5 years ago

چون من تست کردم و لاگ پنل رو و پیام‌ها ارسال شده و گوگل هم میگه به دست شما رسیده. اگر توی پنل در بخش پیام‌ها تصویر
image رو دید که دو تا تیک خورده ینی پیام به دستگاه رسیده

برای اینکه مطمئن بشیم logcat رو باز کنین و روی no filterقرار بدید. اپ رو کیل کنین و یک پیام برای دستگاه خودتون ارسال کنین، بعد از چند ثانیه توی logcat سرچ کنین ببینین پیام شما توی logcat هست؟

ahamidian commented 5 years ago
screen shot 2018-09-23 at 3 43 53 pm
Husseinhj commented 5 years ago

نشون میده که نوتیفیکیشن ارسال شده و به دستگاه هم تحویل داده شده.

اگر شما اپلیکیشن رو هم باز کنید اون حلقه‌های زرد رنگ هم باید به تیک سبز تبدیل بشه، حلقه زرد به معنی پیام در صف هست که وقتی اپ باز بشه پیام چابک رو دریافت می‌کنه

ahamidian commented 5 years ago

ولی هیچ نوتیفیکیشنی نمیاد

Husseinhj commented 5 years ago

من روی اندروید ۸ دستگاه سونی اکسپریا XZ permium تست کردم و پوش نوتیفیکیشن اومده

image

روی Virtual Device اندروید 8 هم تست کردم پوش نوتیفکیشن دریافت شد و مشکل رو نسخه سیستم‌عامل و دستگاه نیست

Husseinhj commented 5 years ago

شما logcat اندروید استدیو رو بررسی کردید؟

من یه تصویر از logcat برای شما قرار دادم :

image

چون گزارش تحویل گوگل میگه پیام شما به دستگاه تحویل داده شده، عدم نمایش نوتیفیکیشن دو حالت ممکنه داشته باشی که یه بخش مربوط به سیستم‌عامل هست که در بخش عیب‌یابی بیان شده و مطمئن بشید همه چیز درست هست در سیستم عامل شما. و مورد بعدی قرار ندادن GcmReciever در فایل مانیفست که بر اساس فایلی که در کامنت‌های قبلی قرار دادید این مورد اضافه شده و مشکلی نیست در این بخش

Husseinhj commented 5 years ago

@ahamidian آیا مشکل شما حل شده است؟