React-native-onesignal: Obtenir le playerid/userid actuel

Créé le 24 févr. 2016  ·  29Commentaires  ·  Source: OneSignal/react-native-onesignal

Est-il actuellement possible d'obtenir l'ID utilisateur/ID de joueur OneSignal actuel comme celui-ci sur iOS ? https://documentation.onesignal.com/docs/ios-sdk-api#section -idsavailable.

J'en ai besoin pour envoyer une notification spécifique à un utilisateur spécifique.

Commentaire le plus utile

L'objectif était de recevoir le PlayerID de Onesignal au lancement de l'application.
Donc, dans App.js pour moi, le code suivant a fonctionné :

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

Tous les 29 commentaires

Bonne idée.
Vous avez maintenant :

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

sur le dernier paquet.

C'est une réponse rapide impressionnante! Merci!

Faites-moi savoir si cela fonctionne ou si vous avez des problèmes.
Sinon, je clos ce sujet...
Merci!

@avishayil J'ai l'impression que cela fonctionne sur iOS. Merci!

De rien!
Problème de clôture.

comment ça marche pour iOS/Swift ?

@alejandrorbradford et tous ceux qui

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

pour les personnes venant ici en 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.

Je ne peux pas obtenir le playerId.
J'ai essayé avec OneSignal.idsAvailable mais ce n'est pas une fonction. Également essayé avec OneSignal.getUserId et il affiche l'erreur "n'est pas une fonction".

Comment puis-je obtenir l'identifiant du joueur ? J'ai installé la version 3.0.7.

Merci d'avance!

Apparemment, cela a maintenant changé. D'après la doc il faut ajouter un écouteur d'événement :
````
componentWillMount() {
OneSignal.addEventListener('ids', this.onIds);
}

componentWillUnmount() {
OneSignal.removeEventListener('ids', this.onIds);
}

onIds(appareil) {
console.log('Informations sur l'appareil : ', appareil );
}
````

Oui, mais cette nouvelle fonction onIds n'est jamais déclenchée.

Qu'en est-il du Web push ? Est-il possible "d'envoyer des notifications à un utilisateur spécifique" ?

@bhgames @jpmazza pourriez-vous trouver un moyen d'obtenir l'ID du joueur actuel ?

Donc, en utilisant la dernière version (3.2.2)

componentWillMount() {
OneSignal.init(Config().pushId, {kOSSettingsKeyAutoPrompt : true});

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

}

async updatePushId(appareil) {
postJSON(UPDATE_PUSHID_URL,
{
user_id : this.props.user.id,
push_id : device.userId
},
{ 'Autorisation' : this.props.authentication_token }
);
} ;

Cela a fonctionné pour moi.

@bhgames cela a fonctionné. Merci.
OneSignal.configure() a fait l'affaire. pourquoi il n'y a rien à ce sujet dans les documents :|

Parce que vous aviez besoin de le savoir. C'est pourquoi. Le développement :P React Native est le pire des développements.

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

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

L'objectif était de recevoir le PlayerID de Onesignal au lancement de l'application.
Donc, dans App.js pour moi, le code suivant a fonctionné :

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

Quelqu'un a-t-il compris cela? Comment puis-je obtenir l'ID de joueur d'un appareil spécifique ? J'en ai besoin pour pouvoir envoyer des notifications push à mes utilisateurs. Les groupes et les filtres ne valent rien dans mon application. La seule chose dont j'ai besoin est l'ID du joueur et je ne trouve rien sur la façon de l'obtenir dans la documentation. Puis-je avoir une aide s'il vous plait? Mon application est intégrée à Ionic V3.

J'ai le même problème, la documentation n'est pas claire

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>
    );
  }
}

c'est mon code et il m'a été dit dans un autre fil que je devrais utiliser OneSignal.getPermissionSubscriptionState(callback) mais où ? et comment ? et comment vais-je passer playerID? s'il vous plaît quelqu'un aide

@davekedar J'ai pu faire fonctionner cela en l'appelant dans mon ionViewDidLoad()

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

Cela fonctionne pour moi; donner un coup de feu.

Merci @kenef

Il suffisait d'invoquer OneSignal.configure() pour qu'un événement soit émis sur l'auditeur 'ids' .

Par exemple:

  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);
  }

Pour aider ceux qui ont encore des problèmes à obtenir le player_id .

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

Le device renvoie un objet. Donc, pour vraiment obtenir les player_id que vous recherchez, vous devriez faire quelque chose comme device.userId

Comment faire pour que cela fonctionne à Cordoue ?

@luizmagao quel est ton environnement ?

bonjour j'ai quickblox dialogid comment je récupère quickblox userid en utilisant ce dialogid

Il suffisait d'invoquer OneSignal.configure() pour qu'un événement soit émis sur l'auditeur 'ids' .

Par exemple:

  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);
  }

Alors, comment pouvez-vous extraire l'ID ? Pourriez-vous l'expliquer davantage?

Obtenez tous les ID de joueur/ID utilisateur en utilisant jquery et autres. Veuillez me faire savoir que c'est possible ou non

Cette page vous a été utile?
0 / 5 - 0 notes