React-native-onesignal: Dapatkan playerid/userid saat ini

Dibuat pada 24 Feb 2016  ·  29Komentar  ·  Sumber: OneSignal/react-native-onesignal

Apakah saat ini mungkin untuk mendapatkan userid/playerid OneSignal saat ini seperti ini di iOS? https://documentation.onesignal.com/docs/ios-sdk-api#section -idsavailable.

Saya membutuhkannya untuk mengirim pemberitahuan khusus ke pengguna tertentu.

Komentar yang paling membantu

Tujuannya adalah untuk menerima PlayerID dari Onesignal pada peluncuran aplikasi.
Jadi di App.js bagi saya mengerjakan kode berikut:

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

Semua 29 komentar

Ide bagus.
Anda sekarang memiliki:

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

pada paket terbaru.

Itu respon cepat yang luar biasa! Terima kasih!

Beri tahu saya jika berhasil atau Anda memiliki masalah.
Jika tidak, saya akan menutup masalah ini ...
Terima kasih!

@avishayil sepertinya berfungsi di iOS. Terima kasih!

Terima kasih kembali!
Penutupan masalah.

bagaimana cara kerjanya untuk iOS/Swift?

@alejandrorbradford dan siapa pun yang sampai di sini setelah pencarian google di sini untuk Swift:

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

untuk orang-orang yang datang ke sini pada tahun 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.

Saya tidak bisa mendapatkan playerId.
Saya mencoba dengan OneSignal.idsAvailable tetapi bukan fungsi. Juga mencoba dengan OneSignal.getUserId dan menampilkan kesalahan "bukan fungsi".

Bagaimana saya bisa mendapatkan id pemain? Saya telah menginstal versi 3.0.7.

Terima kasih sebelumnya!

Ternyata sekarang sudah berubah. Menurut dokumen Anda harus menambahkan pendengar acara:
````
komponenWillMount() {
OneSignal.addEventListener('id', this.onIds);
}

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

onIds(perangkat) {
console.log('Info perangkat: ', perangkat);
}
````

Ya, tetapi fungsi onIds baru itu tidak pernah diaktifkan.

Bagaimana dengan dorongan Web? Apakah mungkin untuk "mengirim pemberitahuan ke pengguna tertentu"?

@bhgames @jpmazza dapatkah Anda menemukan cara untuk mendapatkan ID pemain saat ini?

Jadi, menggunakan versi terbaru (3.2.2)

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

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

}

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

Ini berhasil untuk saya.

@bhgames berhasil. Terima kasih.
OneSignal.configure() berhasil. kok gak ada di dokumen :|

Karena Anda perlu mengetahuinya. Itu sebabnya. :P React Native development adalah perkembangan terburuk.

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

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

Tujuannya adalah untuk menerima PlayerID dari Onesignal pada peluncuran aplikasi.
Jadi di App.js bagi saya mengerjakan kode berikut:

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

Apakah ada yang tahu ini? Bagaimana saya bisa mendapatkan ID Pemain dari perangkat tertentu? Saya membutuhkan ini untuk dapat mengirim pemberitahuan push ke pengguna saya. Grup dan filter tidak berguna dalam aplikasi saya. Satu-satunya hal yang saya butuhkan adalah ID Pemain dan saya tidak dapat menemukan apa pun tentang cara mendapatkannya di dokumentasi mana pun. Dapatkah seseorang tolong bantu? Aplikasi saya dibangun di Ionic V3.

Saya memiliki masalah yang sama, documentatoin tidak jelas

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

ini kode saya dan diberitahukan kepada saya di utas lain bahwa saya harus menggunakan OneSignal.getPermissionSubscriptionState(callback) tetapi di mana? dan bagaimana ? dan bagaimana saya akan melewati playerID? tolong ada yang membantu

@davekedar saya bisa menjalankannya dengan memanggilnya di ionViewDidLoad() saya

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

Ini bekerja untuk saya; mencobanya.

Terima kasih @kenef

Hanya memanggil OneSignal.configure() sudah cukup untuk membuat acara dipancarkan pada pendengar 'ids' .

Misalnya:

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

Untuk membantu mereka yang masih mengalami masalah dalam mendapatkan player_id .

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

device mengembalikan objek. Jadi untuk benar-benar mendapatkan player_id Anda cari, Anda harus melakukan sesuatu seperti device.userId

Bagaimana saya membuatnya berfungsi di Cordova?

@luizmagao apa lingkungan Anda?

halo saya memiliki dialogid quickblox bagaimana saya mengambil userid quickblox dengan menggunakan dialogid ini

Hanya memanggil OneSignal.configure() sudah cukup untuk membuat acara dipancarkan pada pendengar 'ids' .

Misalnya:

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

Jadi, Bagaimana Anda bisa mengekstrak ID? Bisakah Anda menjelaskannya lebih lanjut?

Dapatkan semua playerid/userid menggunakan jquery dan lainnya. Tolong beri tahu saya apakah itu mungkin atau tidak

Apakah halaman ini membantu?
0 / 5 - 0 peringkat