Closed ehsan-dev closed 5 years ago
بله... و همچنان مشکل داریم
بله... و همچنان مشکل داریم
issue مربوط به GoNative را مطالعه کردهاید؟
لطفا اطلاعات زیر را در اختیار ما قرار دهید:
مدل دستگاه:
نسخه اندروید دستگاه:
appId پنل چابک:
بله مطالعه کردیم... SAMSUNG , android 7.0 APPID: upahehwu
بله مطالعه کردیم... SAMSUNG , android 7.0 APPID: upahehwu
آیا هنگامی که اپلیکیشن باز است نوتیفیکیشن برای شما نمایش داده میشود؟
لطفا در متد buildNotification لاگ بگذارید و بررسی کنید آیا کد لاگ شما فراخوانی میشود؟
@Override
public boolean buildNotification(ChabokNotification chabokNotification, NotificationCompat.Builder builder) {
Log.d("CHK", "~~~~~~~ Got message: ", chabokNotification);
return true;
}
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}]
@ehsan-dev
با توجه به Log که شما اینجا قرار دادید پوش نوتیفیکیشن به دستگاه شما تحویل داده میشود. آیا جز چابک SDK دیگری برای پوشنوتیفیکیشن در پروژه شما وجود دارد؟
لطفا پس از اجرا اپلیکیشن logcat اندروید استدیو را به حالت no filter گذاشته و در صورت رخ دادن خطا در نمایش اعلان گزارش خطا را اینجا برای ما قرار دهید
آدرس ایمیل لطف کنید به ما بدید که سورس اپ را برایتان جهت رفع مشکل بفرستیم
آدرس ایمیل ما info@chabok.io
تابع لاگ اصلا فراخوانی نمی شود
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 اگر امکانش هست در مورد اینکه چگونه این موضوع برطرف شده و مشکل از کجا بوده در اینجا قرار بدید تا به بقیه کمک کنه
Add
chabok.addNotificationHandler(getNotificationHandler());
To
public void onEvent(PushMessage message) {
JSONObject data = message.getData();
chabok.addNotificationHandler(getNotificationHandler());
}
از اونجایی که لاگ ارسال را دریافت میکردم اما پوش نمایش داده نمیشد خط کد بالا رو به متد onEvent
اضافه کردم...مشکل حل شد .... ممنون از پشتیبانی خوب شما
البته یک مشکلی هست اونم اینه که در این حالت روی ایکون برنامه عدد 999 میندازه.. هر بار که پوش ارسال می شود...
حالت روی ایکون برنامه عدد 999 میندازه
وقتی شما از روی کارت کاربر در بخش مشترکین روی دکمه تست نوتیفکیشن کلیک میکنید یک نوتیفیکیشن تستی با badge برای کلاینت اندروید شما میفرسته مطمئن بشید پوش نوتیفیکیشن واقعا دریافت میشه و badge میندازه. این عدد برای تست هست. وقتی پیام ارسال کنید badge درست دریافت میکنید
بله... حق با شماست... در حالت ارسال پوش تستی عدد 999 میندازه... در بقیه حالت ها درست می باشد... برای دریافت پوش مشکلی نداریم.. پوش دریافت می شود... فقط یک سوال آیا از طریق کدنویسی می توان پوش ارسال کرد... منظور اینکه از داخل سرور خودمون بدون وارد شدن به پنل چابک اقدام به ارسال پوش بکنیم؟ وب هوک برای همین کار جواب می دهد؟
منظور اینکه از داخل سرور خودمون بدون وارد شدن به پنل چابک اقدام به ارسال پوش بکنیم؟
مستندات api ما رو مطالعه بفرمایید
همچنین در دمو api میتوانید با وارد کردن access_token اقدام به ارسال پوش کنید
حله... سپاس از همراهی و صبوری شما
خواهش میکنم، من این issue رو میبندم در صورت رخ دادن مشکل issue رو باز کنید و مشکلاتون رو مطرح کنید
سلام ... ارتباط ما با چابک برقرار است اما پوش دریافت نمی شود... اگر امکانش هست یک آدرس ایمیل لطف کنید به ما بدید که سورس اپ را برایتان جهت رفع مشکل بفرستیم ...ممنون