React-native-onesignal: احصل على معرف المشغل / معرف المستخدم الحالي

تم إنشاؤها على ٢٤ فبراير ٢٠١٦  ·  29تعليقات  ·  مصدر: OneSignal/react-native-onesignal

هل من الممكن حاليًا الحصول على معرف مستخدم / مشغل OneSignal الحالي مثل هذا على iOS؟ https://documentation.onesignal.com/docs/ios-sdk-api#section- متوفر.

أحتاجه لإرسال إشعار محدد إلى مستخدم معين.

التعليق الأكثر فائدة

كان الهدف هو الحصول على PlayerID من Onesignal عند إطلاق التطبيق.
لذلك في App.js بالنسبة لي عمل الكود التالي:

let userID;
componentWillMount() {
    OneSignal.init(ONESIGNAL_APP_ID, {
      kOSSettingsKeyAutoPrompt: true,
    });
    OneSignal.getPermissionSubscriptionState( (status) => {
      userID = status.userId;
      alert(userID);
    });
  }

ال 29 كومينتر

فكره جيده.
لديك الآن:

OneSignal.idsAvailable((idsAvailable) => { 
    console.log(idsAvailable.playerId);
    console.log(idsAvailable.pushToken);
});

على أحدث حزمة.

هذه استجابة سريعة رائعة! شكرا لك!

اسمحوا لي أن أعرف إذا كان يعمل أو لديك أي مشاكل.
إذا لم يكن كذلك ، فسوف أغلق هذه المشكلة ...
شكرا!

avishayil يبدو أنه يعمل على iOS. شكرا لك!

على الرحب والسعة!
قضية الختام.

كيف يعمل ذلك لنظام iOS / Swift؟

alejandrorbradford وأي شخص آخر يصل إلى هنا بعد البحث في google هنا من أجل Swift:

OneSignal.idsAvailable { (pushID, pushToken) in
    print(pushID)
    print(pushToken)
}

للأشخاص القادمين إلى هنا في عام 2017:

Deprecations and Major Changes
March 21, 2017: Removed getRegistrationId() from documentation. getUserId() should always be used instead.
March 15, 2016: Deprecated getIdsAvailable() in favor of getUserId() and getRegistrationId(). Deprecated idsAvailableCallback in favor of subscriptionChange event.

لا يمكنني الحصول على معرّف اللاعب.
حاولت باستخدام OneSignal.idsAvailable لكنها ليست وظيفة. حاول أيضًا مع OneSignal.getUserId وظهر الخطأ "ليس دالة".

كيف يمكنني الحصول على هوية اللاعب؟ لقد قمت بتثبيت الإصدار 3.0.7.

شكرا لك مقدما!

يبدو أنه قد تغير الآن. وفقًا للمستندات ، يجب عليك إضافة مستمع الحدث:
""
componentWillMount () {
OneSignal.addEventListener ("معرفات ، هذا. onIds) ؛
}

componentWillUnmount () {
OneSignal.removeEventListener ('معرفات ، this.onIds) ؛
}

onIds (الجهاز) {
console.log ("معلومات الجهاز:" ، الجهاز) ؛
}
""

نعم ، لكن وظيفة onIds الجديدة لا يتم إطلاقها أبدًا.

ماذا عن دفع الويب؟ هل من الممكن "إرسال إخطارات إلى مستخدم معين"؟

bhgamesjpmazza هل يمكنك العثور على طريقة للحصول على playerID الحالي؟

لذلك ، باستخدام أحدث إصدار (3.2.2)

componentWillMount () {
OneSignal.init (Config (). pushId، {kOSSettingsKeyAutoPrompt: true}) ؛

OneSignal.addEventListener('ids', this.updatePushId.bind(this));
OneSignal.configure()

}

غير متزامن updatePushId (جهاز) {
postJSON (UPDATE_PUSHID_URL ،
{
user_id: this.props.user.id،
push_id: device.userId
} ،
{"التفويض": this.props.authentication_token}
) ؛
} ؛

هذا عمل لي.

bhgames عملت. شكرا.
حقق OneSignal.configure () الحيلة. لماذا لا يوجد شيء عنها في المستندات: |

لأنك بحاجة إلى معرفة ذلك. لهذا السبب. : P React Native Development هو أسوأ تطور.

https://documentation.onesignal.com/docs/ios-native-sdk#section --getpermissionsubscriptionstate-

let userId = OneSignal.getPermissionSubscriptionState().subscriptionStatus.userId
print("your userID:",userId!)

كان الهدف هو الحصول على PlayerID من Onesignal عند إطلاق التطبيق.
لذلك في App.js بالنسبة لي عمل الكود التالي:

let userID;
componentWillMount() {
    OneSignal.init(ONESIGNAL_APP_ID, {
      kOSSettingsKeyAutoPrompt: true,
    });
    OneSignal.getPermissionSubscriptionState( (status) => {
      userID = status.userId;
      alert(userID);
    });
  }

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

لدي نفس المشكلة ، الوثيقة ليست واضحة

import React from "react";
import { AsyncStorage } from "react-native";
import { createRootNavigator } from "./router";
import { isSignedIn } from "./auth";
import { YellowBox } from "react-native";
import OneSignal from "react-native-onesignal"; // Import package from node modules
//import { Provider } from 'react-redux';
//import { store } from '../app/redux/app-reducer';
YellowBox.ignoreWarnings([
  "Warning: isMounted(...) is deprecated",
  "Module RCTImageLoader"
]);
export default class App extends React.Component {
  constructor(props) {
    super(props);

    this.state = {
      signedIn: false,
      checkedSignIn: false
    };
  }
  componentWillMount() {
    OneSignal.init("my app id");

    OneSignal.addEventListener("received", this.onReceived);
    OneSignal.addEventListener("opened", this.onOpened);
    OneSignal.addEventListener("ids", this.onIds);
  }

  componentWillUnmount() {
    OneSignal.removeEventListener("received", this.onReceived);
    OneSignal.removeEventListener("opened", this.onOpened);
    OneSignal.removeEventListener("ids", this.onIds);
  }

  onReceived(notification) {
    console.log("Notification received: ", notification);
  }

  onOpened(openResult) {
    console.log("Message: ", openResult.notification.payload.body);
    console.log("Data: ", openResult.notification.payload.additionalData);
    console.log("isActive: ", openResult.notification.isAppInFocus);
    console.log("openResult: ", openResult);
  }

  onIds(device) {
    console.log("Device info: ", device);
  }

  componentDidMount() {
    // status = AsyncStorage.getItem('loggedIn');
    // if(status === 'success'){
    //   this.setState({checkedSignIn: true});
    // }
    isSignedIn()
      .then(res => this.setState({ signedIn: res, checkedSignIn: true }))
      .catch(err => alert("An error occurred"));
  }

  render() {
    const { checkedSignIn, signedIn } = this.state;

    // If we haven't checked AsyncStorage yet, don't render anything (better ways to do this)
    if (!checkedSignIn) {
      return null;
    }

    const Layout = createRootNavigator(signedIn);
    return (
      //<Provider store={store}>
      <Layout />
      //  </Provider>
    );
  }
}

هذا هو الكود الخاص بي وقد تم إخباري في سلسلة رسائل أخرى أنه يجب علي استخدام OneSignal.getPermissionSubscriptionState (رد الاتصال) ولكن أين؟ وكيف؟ وكيف سأمرر playerID؟ الرجاء مساعدة شخص ما

davekedar لقد تمكنت من تشغيل هذا من خلال استدعائه في ionViewDidLoad ()

window["plugins"].OneSignal.getIds(function(ids) {
    //alert(JSON.stringify(ids['userId']));
    let playerID = ids['userId'];
    //alert(playerID);
});

هذا العمل بالنسبة لي؛ أعطها فرصة.

شكرا kenef

كان مجرد استدعاء OneSignal.configure() كافيًا لإصدار حدث على المستمع 'ids' .

على سبيل المثال:

  componentWillMount() {
      OneSignal.init("APP ID GOES HERE", {kOSSettingsKeyAutoPrompt : true});
      OneSignal.addEventListener('received', this.onReceived);
      OneSignal.addEventListener('opened', this.onOpened);
      OneSignal.addEventListener('ids', this.onIds);

      OneSignal.configure();  // <-- add this line
  }

  componentWillUnmount() {
      OneSignal.removeEventListener('received', this.onReceived);
      OneSignal.removeEventListener('opened', this.onOpened);
      OneSignal.removeEventListener('ids', this.onIds);
  }

  onReceived(notification) {
      console.log("Notification received: ", notification);
  }

  onOpened(openResult) {
    console.log('Message: ', openResult.notification.payload.body);
    console.log('Data: ', openResult.notification.payload.additionalData);
    console.log('isActive: ', openResult.notification.isAppInFocus);
    console.log('openResult: ', openResult);
  }

  onIds(device) {
    console.log('Device info: ', device);
  }

لمساعدة أولئك الذين ما زالوا يواجهون مشكلات في الحصول على player_id .

onIds(device) {
    console.log('Device info: ', device);
  }

يُرجع device كائنًا. لذا ، لكي تحصل حقًا على player_id الذي تبحث عنه ، يجب أن تفعل شيئًا مثل device.userId

كيف أحصل على هذا للعمل في قرطبة؟

luizmagao ما هي بيئتك؟

مرحبًا ، لدي مربع حوار Quickblox كيف أحضر معرف مستخدم Quickblox باستخدام هذا الحوار

كان مجرد استدعاء OneSignal.configure() كافيًا لإصدار حدث على المستمع 'ids' .

على سبيل المثال:

  componentWillMount() {
      OneSignal.init("APP ID GOES HERE", {kOSSettingsKeyAutoPrompt : true});
      OneSignal.addEventListener('received', this.onReceived);
      OneSignal.addEventListener('opened', this.onOpened);
      OneSignal.addEventListener('ids', this.onIds);

      OneSignal.configure();  // <-- add this line
  }

  componentWillUnmount() {
      OneSignal.removeEventListener('received', this.onReceived);
      OneSignal.removeEventListener('opened', this.onOpened);
      OneSignal.removeEventListener('ids', this.onIds);
  }

  onReceived(notification) {
      console.log("Notification received: ", notification);
  }

  onOpened(openResult) {
    console.log('Message: ', openResult.notification.payload.body);
    console.log('Data: ', openResult.notification.payload.additionalData);
    console.log('isActive: ', openResult.notification.isAppInFocus);
    console.log('openResult: ', openResult);
  }

  onIds(device) {
    console.log('Device info: ', device);
  }

اذن كيف يمكنك استخراج المعرف؟ هل يمكن أن تشرحها أكثر؟

احصل على كل هوية المشغل / معرف المستخدم باستخدام jquery وغيرها. من فضلك أعلمني أنه ممكن أم لا

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات