現在、iOSでこのような現在のOneSignalユーザーID /プレーヤーIDを取得することは可能ですか? https://documentation.onesignal.com/docs/ios-sdk-api#section-idsavailable 。
特定のユーザーに特定の通知を送信するために必要です。
良いアイデア。
あなたは今持っています:
OneSignal.idsAvailable((idsAvailable) => {
console.log(idsAvailable.playerId);
console.log(idsAvailable.pushToken);
});
最新のパッケージで。
それは素晴らしい速い応答です! ありがとうございました!
それが機能するか、何か問題があるかどうか私に知らせてください。
そうでない場合は、この問題をクローズします...
ありがとう!
@avishayiliOSで動作しているようです。 ありがとうございました!
どういたしまして!
クロージングの問題。
それはiOS / Swiftでどのように機能しますか?
@alejandrorbradfordとここでグーグル検索した後にここに
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.
playerIdを取得できません。
OneSignal.idsAvailable
試しましたが、関数ではありません。 また、 OneSignal.getUserId
試してみると、「関数ではありません」というエラーが表示されます。
プレーヤーIDを取得するにはどうすればよいですか? バージョン3.0.7をインストールしました。
前もって感謝します!
どうやらそれは今変わった。 ドキュメントによると、イベントリスナーを追加する必要があります。
「」
componentWillMount(){
OneSignal.addEventListener( 'ids'、this.onIds);
}
componentWillUnmount(){
OneSignal.removeEventListener( 'ids'、this.onIds);
}
onIds(デバイス){
console.log( 'デバイス情報:'、デバイス);
}
「」
ええ、でもその新しいonIds関数は起動されません。
Webプッシュはどうですか? 「特定のユーザーに通知を送信する」ことはできますか?
@bhgames @jpmazza現在の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 ReactNative開発は最悪の開発です。
https://documentation.onesignal.com/docs/ios-native-sdk#section --getpermissionsubscriptionstate-
let userId = OneSignal.getPermissionSubscriptionState().subscriptionStatus.userId
print("your userID:",userId!)
目標は、アプリケーションの起動時にOnesignalからPlayerIDを受け取ることでした。
したがって、App.jsでは、次のコードを使用しました。
let userID;
componentWillMount() {
OneSignal.init(ONESIGNAL_APP_ID, {
kOSSettingsKeyAutoPrompt: true,
});
OneSignal.getPermissionSubscriptionState( (status) => {
userID = status.userId;
alert(userID);
});
}
誰かがこれを理解しましたか? 特定のデバイスのプレーヤーIDを取得するにはどうすればよいですか? ユーザーにプッシュ通知を送信できるようにするには、これが必要です。 私のアプリケーションでは、グループとフィルターは無価値です。 必要なのはプレーヤーIDだけですが、これを取得する方法についてはどのドキュメントにも見つかりません。 誰か助けてもらえますか? 私のアプリはIonicV3に組み込まれています。
私は同じ問題を抱えています、documentatoinは明確ではありません
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(callback)を使用する必要があると言われましたが、どこで? そしてどうやって ? そして、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
これをCordovaで機能させるにはどうすればよいですか?
@luizmagaoあなたの環境は何ですか?
こんにちは私はquickbloxdialogidを持っていますこのdialogidを使用してquickbloxユーザーIDを取得する方法
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); }
では、どうすればIDを抽出できますか? もっと説明してもらえますか?
jqueryなどを使用してすべてのplayerid / useridを取得します。可能かどうかをお知らせください
最も参考になるコメント
目標は、アプリケーションの起動時にOnesignalからPlayerIDを受け取ることでした。
したがって、App.jsでは、次のコードを使用しました。