chabokpush / chabok-client-rn-js

Chabok react native wrapper in pure JS (supports code push)
MIT License
4 stars 0 forks source link

عدم دریافت پوش نوتیفیکیشن در برنامه ی اندرویدی #4

Closed zeoses closed 5 years ago

zeoses commented 5 years ago

https://github.com/chabokpush/chabok-panel/issues/8#issuecomment-438941103

من کانفیک های مربوطه رو انجام دادم ولی در برنامه هیچ نوتیفکیشینی در نکرده ام.. .

Husseinhj commented 5 years ago

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

آیا توکن پوش نوتیفیکیشن را پس از دریافت از کتابخانه react-native-push-notification به چابک همانند مستندات داده‌اید؟

برای بررسی دقیق‌تر پروژه استارتر چابک را مشاهده کنید و از پیاده‌سازی آن استفاده کنید.

zeoses commented 5 years ago

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

آیا توکن پوش نوتیفیکیشن را پس از دریافت از کتابخانه react-native-push-notification به چابک همانند مستندات داده‌اید؟

برای بررسی دقیق‌تر پروژه استارتر چابک را مشاهده کنید و از پیاده‌سازی آن استفاده کنید.

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

untitled

Husseinhj commented 5 years ago

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

آمدن دستگاه در پنل به معنی دریافت نوتیفیکیشن نیست (شما در حال حاضر فقط می‌توانید پیام چابک را دریافت کنید)، زمانی که شما توکن پوش‌نوتیفیکیشن را که در مستندات ذکر شده را به چابک دهید، می‌توانید پوش‌نوتیفیکیشن دریافت کنید.

پروژه استارتر را مشاهده کرده‌اید؟

خطا disable به این معنی است که هنوز توکنی برای این دستگاه ست نشده است

zeoses commented 5 years ago

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

آمدن دستگاه در پنل به معنی دریافت نوتیفیکیشن نیست (شما در حال حاضر فقط می‌توانید پیام چابک را دریافت کنید)، زمانی که شما توکن پوش‌نوتیفیکیشن را که در مستندات ذکر شده را به چابک دهید، می‌توانید پوش‌نوتیفیکیشن دریافت کنید.

پروژه استارتر را مشاهده کرده‌اید؟

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


import React, { Component } from 'react';
import { Platform, StyleSheet, Text, View, Button, AppState, AsyncStorage } from 'react-native';
import chabokpush from 'chabokpush-rn';

var PushNotification = require('react-native-push-notification');

const instructions = Platform.select({
  ios: 'Press Cmd+R to reload,\n' + 'Cmd+D or shake for dev menu',
  android:
    'Double tap R on your keyboard to reload,\n' +
    'Shake or press menu button for dev menu',
});

const auth = {
  appId: 'my-app-id',
  apiKey: 'my-key',
  username: 'my-user',
  password: 'my-pass',
  devMode: true
}
const options = {
  silent: false,
  realtime: true
};
this.chabok = new chabokpush(auth, options);

PushNotification.configure({
  onRegister: ({ token }) => {
    if (token) {
      this.chabok.setPushNotificationToken(token)
    }
  },
  // (required) Called when a remote or local notification is opened or received
  onNotification: function (notification) {
    console.warn('NOTIFICATION:', notification);
    // required on iOS only (see fetchCompletionHandler docs: https://facebook.github.io/react-native/docs/pushnotificationios.html)
    notification.finish(PushNotificationIOS.FetchResult.NoData);
  },
  senderID: "My-GCM Sender ID", // ANDROID ONLY: (optional) GCM Sender ID.
  permissions: {
    alert: true,
    badge: true,
    sound: true
  },
  popInitialNotification: true,
  requestPermissions: true,
});

type Props = {};
export default class App extends Component<Props> {

  state = {
    chabokStatus: 'offline',
    messages: [],
    phone: 'my id',
    currentUser: 'xs',
    newUser: '',
    archive: {},
    users: [],
    modalVisible: false,
    userPromptVisible: false,
    appState: AppState.currentState
  }

  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>Welcome to React Native!</Text>
        <Text style={styles.instructions}>{this.state.currentUser}</Text>
        <Text style={styles.instructions}>{instructions}</Text>
        <Button
          title="vvvv"

          onPress={() => {
            var i = 1;
            if (i == 1) {

              chabok.register(this.state.phone);
              i = i + 1;
              if (chabok.isRegistered()) {

                this.setState({
                  currentUser: "dds"
                })

              }
            }

          }} />

      </View>
    );
  }
}
Husseinhj commented 5 years ago

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

zeoses commented 5 years ago

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

Husseinhj commented 5 years ago

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

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

اگر از کد پوش استفاده نمی‌کنید توصیه ما این است که از کتابخانه bridge ریکت نیتو چابک استفاده کنید که از کتابخانه نیتیو اندروید و iOS استفاده می‌کند

zeoses commented 5 years ago

بازم ممنون از راهنماییتون تو برنامه ام به کدپوش وابسطه است یه بار دیگه مستندات رو بررسی می کنم چون من در حالت بسته بودن برنامه نوتیفکشنی دریافت نمی کنم .. و اینکه در حالتی که دستگاه در سایت آفلاین هست آیا پیغام ارسال می شه... ؟

Husseinhj commented 5 years ago

بازم ممنون از راهنماییتون تو برنامه ام به کدپوش وابسطه است

خواهش می‌کنم.

و اینکه در حالتی که دستگاه در سایت آفلاین هست آیا پیغام ارسال می شه... ؟

پیام چابک زمانی که اپلیکیشن باز باشد (به چابک متصل باشد) حتما پیام را در همان لحظه دریافت می‌کند

در صورت عدم اتصال به چابک (بسته بودن اپ) چابک برای آن کاربر اقدام به ارسال نوتیفیکیشن می‌کند (در صورت قرار دادن توکن پوش)

Husseinhj commented 5 years ago

@zeoses برای دستگاه‌های اندروید شما خطای SENDER_ID_MISMATCH را می‌گیرید