chabokpush / chabok-client-android

Chabok Push Client for Android
https://chabokpush.com
5 stars 1 forks source link

مشکل در ارسال پوش #21

Closed ehsan-dev closed 5 years ago

ehsan-dev commented 5 years ago

سلام ... ارتباط ما با چابک برقرار است اما پوش دریافت نمی شود... اگر امکانش هست یک آدرس ایمیل لطف کنید به ما بدید که سورس اپ را برایتان جهت رفع مشکل بفرستیم ...ممنون

Husseinhj commented 5 years ago

پوش دریافت نمی شود

آیا بخش عیب‌یابی را مطالعه کرده‌اید؟

ehsan-dev commented 5 years ago

بله... و همچنان مشکل داریم

Husseinhj commented 5 years ago

بله... و همچنان مشکل داریم

issue مربوط به GoNative را مطالعه کرده‌اید؟

لطفا اطلاعات زیر را در اختیار ما قرار دهید:

مدل دستگاه:

نسخه اندروید دستگاه:

appId پنل چابک:

ehsan-dev commented 5 years ago

بله مطالعه کردیم... SAMSUNG , android 7.0 APPID: upahehwu

Husseinhj commented 5 years ago

بله مطالعه کردیم... SAMSUNG , android 7.0 APPID: upahehwu

آیا هنگامی که اپلیکیشن باز است نوتیفیکیشن برای شما نمایش داده می‌شود؟

لطفا در متد buildNotification لاگ بگذارید و بررسی کنید آیا کد لاگ شما فراخوانی میشود؟

@Override
public boolean buildNotification(ChabokNotification chabokNotification, NotificationCompat.Builder builder) {

       Log.d("CHK", "~~~~~~~ Got message: ", chabokNotification);

       return true;
}
ehsan-dev commented 5 years ago

1- در هنگامی که اپلیکیشن باز هست نوتیفیکیشن نمایش داده نمی شود

2-لاگی که در این متدی که فرمودید گزاشتم فراخوانی نشد

3- هنگام ارسال پوش تستی در لاگ کت پیغام زیر دریافت می شود

I/com.adpdigital.push.GcmMessageHandler: Notification Extras Bundle[{google.delivered_priority=normal, google.sent_time=1545037921344, google.ttl=5999, 
google.original_priority=normal, messageId=ZnV_h57QS6SKDQWcCBWmLg-60926, androidBadge=1362, sound=default, groupId=default, 
google.message_id=0:1545037921347503%4a89eb115c13d641:dr:com.pyramid.fastbar.debug:dr:183161322736:dr:ZnV_h57QS6SKDQWcCBWmLg-60926:5c061c1cbc63c4c9eb666ec4:5, 
message=Chabok Test Notification, deviceId=5c061c1cbc63c4c9eb666ec4, collapse_key=default}]
Husseinhj commented 5 years ago

@ehsan-dev

با توجه به Log که شما اینجا قرار دادید پوش نوتیفیکیشن به دستگاه شما تحویل داده میشود. آیا جز چابک SDK دیگری برای پوش‌نوتیفیکیشن در پروژه شما وجود دارد؟

لطفا پس از اجرا اپلیکیشن logcat اندروید استدیو را به حالت no filter گذاشته و در صورت رخ دادن خطا در نمایش اعلان گزارش خطا را اینجا برای ما قرار دهید

آدرس ایمیل لطف کنید به ما بدید که سورس اپ را برایتان جهت رفع مشکل بفرستیم

آدرس ایمیل ما info@chabok.io

ehsan-dev commented 5 years ago

تابع لاگ اصلا فراخوانی نمی شود

package io.gonative.android;
import android.app.Application;
import android.os.Bundle;
import android.os.Message;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.webkit.ValueCallback;
import com.facebook.FacebookSdk;
import com.joanzapata.iconify.Iconify;
import com.joanzapata.iconify.fonts.FontAwesomeModule;

import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

import io.gonative.android.library.AppConfig;
import com.adpdigital.push.AdpPushClient;
import com.adpdigital.push.PushMessage;
import com.adpdigital.push.ChabokNotification;
import com.adpdigital.push.NotificationHandler;
import static io.gonative.android.common.Constants.YOUR_APP_ID;
import static io.gonative.android.common.Constants.SDK_PASSWORD;
import static io.gonative.android.common.Constants.SDK_USERNAME;
import static io.gonative.android.common.Constants.YOUR_API_KEY;

import org.json.JSONObject;

/**
 * Created by weiyin on 9/2/15.
 * Copyright 2014 GoNative.io LLC
 */
public class GoNativeApplication extends Application {
    private RegistrationManager registrationManager;
    private Message webviewMessage;
    private ValueCallback webviewValueCallback;
    //private boolean oneSignalRegistered = false;
    private int numOneSignalChecks = 0;
    private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
    private final String TAG = this.getClass().getName();
    private AdpPushClient chabok = null;
    @Override
    public void onCreate() {
        super.onCreate();

        initPushClient();
        String userId = chabok.getUserId();
        if (userId != null && !userId.isEmpty()) {
            chabok.register(userId);
        } else {
        chabok.register("Chabok-Starter-GoNative2");
         }
        //chabok register
        AppConfig appConfig = AppConfig.getInstance(this);

        //if (userId != null && !userId.isEmpty()) {

         //   AdpPushClient.get().register(userId);
       // } else {

            //If user is not registered verify the user and
            //call AdpPushClient.get().register("USER_ID") method at login page
         //   AdpPushClient.get().register("0000000000");
       // }
        if (appConfig.facebookEnabled) {
            FacebookSdk.sdkInitialize(getApplicationContext());
        }

        if (appConfig.registrationEndpoints != null) {
            this.registrationManager = new RegistrationManager(this);
            registrationManager.processConfig(appConfig.registrationEndpoints);

        }

        // some global webview setup
        WebViewSetup.setupWebviewGlobals(this);

        Iconify.with(new FontAwesomeModule());
        //AppConfig appConfig = AppConfig.getInstance(this);
        //AdpPushClient.init(
        //       getApplicationContext(),
        //       MainActivity.class,
        //       "upahehwu/183161322736", //based on your environment
        //       "1bac10ce81a6b209395a65953ae2b88adc026276",          //based on your environment
        //       "hilhibirjud",     //based on your environment
        //     "binhazeflel"      //based on your environment
        //);

        //true connects to Sandbox environment
        //false connects to Production environment
    }

    private synchronized void initPushClient() {

        if (chabok == null) {
            chabok = AdpPushClient.init(
                    getApplicationContext(),
                    MainActivity.class,
                    YOUR_APP_ID,
                    YOUR_API_KEY,
                    SDK_USERNAME,
                    SDK_PASSWORD
            );
            chabok.setDevelopment(true);
            chabok.addListener(this);
            chabok.addNotificationHandler(getNotificationHandler());
        }

    }
    public RegistrationManager getRegistrationManager() {
        return registrationManager;
    }

    public Message getWebviewMessage() {
        return webviewMessage;
    }

    public void setWebviewMessage(Message webviewMessage) {
        this.webviewMessage = webviewMessage;
    }

    public ValueCallback getWebviewValueCallback() {
        return webviewValueCallback;
    }

    public void setWebviewValueCallback(ValueCallback webviewValueCallback) {
        this.webviewValueCallback = webviewValueCallback;
    }

    // chabok start
    private NotificationHandler getNotificationHandler(){
        return new NotificationHandler(){

            @Override
            public Class getActivityClass(ChabokNotification chabokNotification) {
                // return preferred activity class to be opened on this message's notification
                return MainActivity.class;
            }

            @Override
            public boolean buildNotification(ChabokNotification chabokNotification, NotificationCompat.Builder builder) {
                Log.d("CHK", "~~~~~~~ Got message Ehsan: "+ chabokNotification);
                Log.d("myTag", "This is my message");
                getDataFromChabokNotification(chabokNotification);
                return true;
            }
        };
    }

    private void getDataFromChabokNotification(ChabokNotification chabokNotification) {
        if (chabokNotification != null) {
            if (chabokNotification.getExtras() != null) {
                Bundle payload = chabokNotification.getExtras();

                //FCM message data is here
                Object data = payload.get("data");
                if (data != null) {
                    Log.d(TAG, "getDataFromChabokNotification: The ChabokNotification data is : " + String.valueOf(data));
                }
            } else if (chabokNotification.getMessage() != null) {
                PushMessage payload = chabokNotification.getMessage();

                //Chabok message data is here
                JSONObject data = payload.getData();
                if (data != null) {
                    Log.d(TAG, "getDataFromChabokNotification: The ChabokNotification data is : " + data);
                }
            }
        }
    }

    public void onEvent(PushMessage message) {

        JSONObject data = message.getData();
        if (data != null){
           Log.d(TAG, "--------------------\n\n The message data is : " + data + "\n\n");
        }
        chabok.addNotificationHandler(getNotificationHandler());
    }

    @Override
    public void onTerminate() {
        if (AdpPushClient.get() != null)
            AdpPushClient.get().dismiss();

        super.onTerminate();
    }
    //end chabook
}
ehsan-dev commented 5 years ago

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

Husseinhj commented 5 years ago

@ehsan-dev اگر امکانش هست در مورد اینکه چگونه این موضوع برطرف شده و مشکل از کجا بوده در اینجا قرار بدید تا به بقیه کمک کنه

ehsan-dev commented 5 years ago

Add

 chabok.addNotificationHandler(getNotificationHandler());

To

public void onEvent(PushMessage message) {
        JSONObject data = message.getData();
        chabok.addNotificationHandler(getNotificationHandler());
    }

از اونجایی که لاگ ارسال را دریافت میکردم اما پوش نمایش داده نمیشد خط کد بالا رو به متد onEvent

اضافه کردم...مشکل حل شد .... ممنون از پشتیبانی خوب شما

ehsan-dev commented 5 years ago

البته یک مشکلی هست اونم اینه که در این حالت روی ایکون برنامه عدد 999 میندازه.. هر بار که پوش ارسال می شود...

Husseinhj commented 5 years ago

حالت روی ایکون برنامه عدد 999 میندازه

وقتی شما از روی کارت کاربر در بخش مشترکین روی دکمه تست نوتیفکیشن کلیک می‌کنید یک نوتیفیکیشن تستی با badge برای کلاینت اندروید شما میفرسته مطمئن بشید پوش نوتیفیکیشن واقعا دریافت میشه و badge میندازه. این عدد برای تست هست. وقتی پیام ارسال کنید badge درست دریافت می‌کنید

ehsan-dev commented 5 years ago

بله... حق با شماست... در حالت ارسال پوش تستی عدد 999 میندازه... در بقیه حالت ها درست می باشد... برای دریافت پوش مشکلی نداریم.. پوش دریافت می شود... فقط یک سوال آیا از طریق کدنویسی می توان پوش ارسال کرد... منظور اینکه از داخل سرور خودمون بدون وارد شدن به پنل چابک اقدام به ارسال پوش بکنیم؟ وب هوک برای همین کار جواب می دهد؟

Husseinhj commented 5 years ago

منظور اینکه از داخل سرور خودمون بدون وارد شدن به پنل چابک اقدام به ارسال پوش بکنیم؟

مستندات api ما رو مطالعه بفرمایید

همچنین در دمو api می‌توانید با وارد کردن access_token اقدام به ارسال پوش کنید

ehsan-dev commented 5 years ago

حله... سپاس از همراهی و صبوری شما

Husseinhj commented 5 years ago

خواهش می‌کنم، من این issue رو می‌بندم در صورت رخ دادن مشکل issue رو باز کنید و مشکلاتون رو مطرح کنید