Keterangan:
Tidak bisa mendapatkan pushToken, tidak ada pengguna ios di dasbor, saya mencoba semuanya, saya membuat ulang sertifikat, kunci, menggunakan alat penyediaan, mencoba perangkat nyata yang berbeda.
Di android semuanya bekerja seperti pesona.
Lingkungan
latest 3.2.1
npm i --save react-native-onesignal
Version 9.3 (9E145)
paket saya.json
Langkah-langkah untuk Mereproduksi Masalah:
kode js
export default class App extends Component {
componentWillMount() {
OneSignal.setLogLevel(7, 0);
OneSignal.init('here my ONESIGNAL APP ID - I checked it twenty times', { kOSSettingsKeyAutoPrompt: true });
OneSignal.setSubscription(true);
OneSignal.enableSound(true);
OneSignal.enableVibrate(true);
OneSignal.inFocusDisplaying(2);
OneSignal.getPermissionSubscriptionState((response) => {
console.log('Received permission subscription state: ', response);
});
}
Saya mendapat tanggapan dari getPermissionSubscriptionState
:
{
emailAddress:null
emailSubscribed:false
emailUserId:null
hasPrompted:true
notificationsEnabled:true
pushToken:null
subscriptionEnabled:false
userId:null
userSubscriptionEnabled:true
}
Tentu saja tidak ada pengguna ios di dasbor.
Tambahan saya melihat log di xcode
Called init with app ID: (null)
2018-05-14 11:21:03.636571+0300 rbtse[15320:6135130] Called init with app ID: xxxxxx-ea78-4b29-8b91-xxxxxxxxx (I changed app id)
2018-05-14 11:21:03.636758+0300 rbtse[15320:6135130] DEBUG: Downloading iOS parameters for this application
2018-05-14 11:21:03.642023+0300 rbtse[15320:6135181] VERBOSE: getNotificationTypes:mSubscriptionStatus: -1
2018-05-14 11:21:03.643531+0300 rbtse[15320:6135130] VERBOSE: registerForPushNotifications Called:waitingForApnsResponse: 1
2018-05-14 11:21:03.690752+0300 rbtse[15320:6135130] VERBOSE: oneSignalApplicationWillResignActive
2018-05-14 11:21:03.986984+0300 rbtse[15320:6135181] VERBOSE: network response (OSRequestGetIosParams): {
fba = 1;
}
2018-05-14 11:21:05.778574+0300 rbtse[15320:6135130] VERBOSE: oneSignalApplicationDidBecomeActive
2018-05-14 11:21:05.778918+0300 rbtse[15320:6135130] VERBOSE: getNotificationTypes:mSubscriptionStatus: -1
2018-05-14 11:21:05.792324+0300 rbtse[15320:6135130] VERBOSE: updateNotificationTypes called: 15
2018-05-14 11:21:05.792388+0300 rbtse[15320:6135130] VERBOSE: startedRegister: 1
Saya menemukan masalah yang sama https://github.com/geektimecoil/react-native-onesignal/issues/502
Jadi saya mencoba menurunkan versi ke https://github.com/geektimecoil/react-native-onesignal/tree/3.1.4 - ikuti semua langkah dan sekarang berhasil!
Jadi versi terakhir tidak berfungsi
Hai, ketika Anda menginstal versi terbaru react-native-onesignal (3.2.2) dan menjalankan react-native link react-native-onesignal
, dapatkah Anda membuka proyek Xcode dan memverifikasi bahwa RCTOneSignal muncul dengan benar sebagai ketergantungan dalam proyek Anda seperti ini?
pushToken
dan userId
juga nol untuk saya di perangkat nyata (dalam mode rilis)
[email protected]:
version "3.2.2"
resolved "https://registry.yarnpkg.com/react-native-onesignal/-/react-native-onesignal-3.2.2.tgz#d1ae1e95cc301b940120de29a29ae90f478c9a97"
dependencies:
invariant "^2.2.2"
(kali ini tidak ada di podfile saya)
@Jarred-Sumner Coba hapus instalan aplikasi dari perangkat Anda, lalu instal ulang, apakah itu meminta Anda untuk menerima izin pemberitahuan push?
Juga, hanya untuk memeriksa, Anda mengaktifkan kemampuan Pemberitahuan Push di Pengaturan Proyek> Kemampuan, benar?
@Jarred-Sumner Coba hapus instalan aplikasi dari perangkat Anda, lalu instal ulang, apakah itu meminta Anda untuk menerima izin pemberitahuan push?
Ya
Juga, hanya untuk memeriksa, Anda mengaktifkan kemampuan Pemberitahuan Push di Pengaturan Proyek> Kemampuan, benar?
Ya
Saya menurunkan versi ke v3.1.4
dan sekarang mengirimkan pushToken
dan userId
@ Jarred-Sumner Hanya untuk memahami masalah ini sedikit lebih baik, ID-nya nol, tetapi apakah pemberitahuan push benar-benar berfungsi? Seharusnya tidak, tetapi saya ingin memeriksa ulang.
Juga, dapatkah Anda mencoba memperbarui ke 3.2.2, menginisialisasi dengan JS, dan memanggil OneSignal.setLogLevel(6, 0)
sebelum Anda memanggil init. Bisakah Anda memberi tahu saya jika Anda melihat kesalahan yang dicetak ke konsol?
Masalah tetap ada pada 3.2.2.
Mengatur level log akan mencetak output berikut
Disebut init dengan ID aplikasi: (null)
(Kemudian di suatu tempat di bawah dalam log)
Disebut init dengan ID aplikasi: (id-aplikasi-saya)
Tapi userId masih nol. Saya telah menyertakan perpustakaan menggunakan CocoaPods jika itu membantu
@hhunaid diharapkan ID aplikasi akan menjadi nol pertama kali (mungkin kita harus menghapus pernyataan log pertama itu untuk menghindari kebingungan).
ID pengguna juga diharapkan menjadi nol hingga pengguna menerima izin push pada perangkat iOS asli. Bisakah Anda mengkonfirmasi ini masalahnya? Jika demikian, dapatkah Anda memposting tautan ke setidaknya 15 detik output log dari Xcode dengan level log itu (pastikan untuk memanggil setLogLevel sebelum memanggil init)
@Nightsd01 bukan hanya pernyataan LOG. Sebenarnya ada panggilan ke OneSignal initializer dengan null appId. Saya baru saja memeriksa bahwa jika saya menghapus baris init dalam metode initOneSignal
semuanya berfungsi.
@hhunaid ya, diharapkan panggilan pertama ke penginisialisasi akan dengan ID Aplikasi nol, ini adalah berapa banyak SDK pembungkus kami yang berfungsi. Anda mengatakan bahwa jika Anda menghapus panggilan pertama ini, "semuanya berfungsi"...?
Untuk mengesampingkan perubahan lain yang mungkin telah Anda buat, dapatkah Anda membatalkan komentar initOneSignal lagi untuk memverifikasi bahwa itu berhenti berfungsi...?
Bisakah Anda memposting package.json
sehingga saya dapat melihat dependensi apa yang Anda gunakan?
Saya telah mencoba dan mematikan dengan dan tanpa potongan kode yang disebutkan dan sekarang saya dapat mengatakan dengan yakin bahwa memang itu adalah pelakunya. Setidaknya di aplikasi saya.
Menghapusnya memberi saya playerId yang valid dan perangkat saya ditampilkan di dasbor OneSignal. Yang tidak terjadi sebelumnya.
Sama disini. PushToken selalu nol. Saya akan menempelkan tangkapan layar di bawah ini.
package.json saya seperti di bawah ini.
"abortcontroller-polyfill": "^1.1.9",
"immutability-helper": "^2.7.0",
"mobx": "^4.2.1",
"mobx-react": "^5.1.2",
"moment": "^2.22.1",
"react": "^16.3.2",
"react-native": "^0.55.4",
"react-native-amplitude-analytics": "^0.1.15",
"react-native-animatable": "^1.2.4",
"react-native-audio-recorder-player": "^1.0.15",
"react-native-iap": "^1.0.1",
"react-native-image-picker": "^0.26.10",
"react-native-linear-gradient": "^2.4.0",
"react-native-loading-spinner-overlay": "^0.5.2",
"react-native-localization": "^1.0.7",
"react-native-marquee": "^0.3.1",
"react-native-modalbox": "^1.4.2",
"react-native-onesignal": "^3.2.2",
"react-native-permissions": "^1.1.1",
"react-native-pinch-zoom-view": "^0.1.6",
"react-native-sentry": "^0.36.0",
"react-native-status-bar-height": "^2.0.0",
"react-native-swiper": "^1.5.13",
"react-navigation": "^2.0.1",
"serializr": "^1.2.0"
@dooboolab Anda menggunakan inisialisasi JS, benar?
Bisakah Anda memberi tahu saya di mana dalam proyek Anda yang Anda panggil OneSignal.init()
?
Selama hidup saya, saya _tidak bisa_ mereproduksi masalah ini. Jika seseorang dapat mereproduksi masalah ini dalam proyek demo dan mempostingnya, kami dapat memperbaiki masalah ini _jauh_ lebih cepat.
@tavriaforever hai, jadi
masalah yang sama di sini, ada solusi?
"react": "16.3.1",
"react-native": "0.55.3",
"react-native-onesignal": "^3.2.0",
@Nightsd01
Saya memanggil root saya index.tsx
mana ia membungkus RootStackNavigator.
class App extends React.Component {
public componentDidMount() {
OneSignal.init('****');
OneSignal.addEventListener('received', this.onReceived);
OneSignal.addEventListener('opened', this.onOpened);
OneSignal.addEventListener('ids', this.onIds);
OneSignal.enableVibrate(true);
OneSignal.enableSound(true);
.....
public render() {
return (
<Provider
store={ appStore }
user={ userStore }
player={ playerStore }
>
<View style={styles.container}>
<RootStackNavigator />
</View>
</Provider>
);
Masih menderita karena mendapatkan token nol.
@Nightsd01 Sama di sini.
Menghapus init dengan appId:nil di RCTOneSignal.m membantu
@Nightsd01 Saya baru saja mencoba di Android, dan Android memiliki masalah yang sama.
Saya kira inisialisasi sisi JS bukanlah ide yang bagus.
Saya mengerti meskipun itu memudahkan pengembang web atau orang-orang tanpa latar belakang asli untuk dengan mudah menggunakan perpustakaan.
@hhunaid sepertinya saya harus menurunkan versi?
@dooboolab @408dev ya, saya akan merekomendasikan bahwa jika Anda mengalami masalah ini, Anda menurunkan versi ke 3.1.4 untuk saat ini sampai kami menyelesaikan masalah ini. Permintaan maaf. Ingatlah bahwa JS init tidak didukung di 3.1.4 jadi Anda harus mengikuti panduan untuk menambahkan kode inisialisasi asli ke proyek Anda.
@hhunaid memang membuat segalanya lebih mudah bagi
Sebagai pembaruan, kami dapat mereproduksi masalah ini dan telah mengidentifikasi penyebabnya, kami akan segera meluncurkan pembaruan untuk menyelesaikannya.
Halo semuanya - masalah ini telah diselesaikan dalam PR baru (#512). Kami berharap ini digabungkan dan pembaruan baru dirilis dalam satu atau dua jam ke depan. Terima kasih atas kesabaran Anda!
Halo semuanya @dooboolab @hhunaid @408dev @el-lsan @neo125874 @Jarred-Sumner
Pembaruan baru (3.2.3) telah dirilis dan akan memperbaiki masalah ini. Jangan ragu untuk memberi tahu saya jika Anda melihat masalah ini (atau masalah lain) lagi dan saya akan dengan senang hati menyelidikinya.
@Nightsd01
saya menggunakan
"react": "16.3.1",
"react-native": "0.55.3",
"react-native-onesignal": "^3.2.3",
pada perangkat nyata semuanya berfungsi dengan baik seperti yang diharapkan, tetapi saya masih menerima null userId
secara acak pada simulators
dan saya tidak melihat perangkat apa pun ditambahkan ke daftar pemain saya! (sejauh ini saya menguji seperti> 50 kali dan hanya 2 kali yang berhasil!)
Saya mencoba membersihkan dan membangun kembali aplikasi serta rm -rf node_modules/ && yarn cache clean && yarn install && yarn start -- --reset-cache
tetapi saya masih tidak mendapatkan status yang diharapkan dari OneSignal.getPermissionSubscriptionState
{ userSubscriptionEnabled: true,
subscriptionEnabled: false,
pushToken: null,
emailAddress: null,
userId: null,
hasPrompted: true,
notificationsEnabled: true,
emailUserId: null,
emailSubscribed: false }
@el-lsan yang diharapkan. Itu adalah batasan Apple, bukan milik kita. Simulator iOS tidak dapat menerima pemberitahuan push. Mereka tidak akan mendapatkan token push APNS dan tidak akan terdaftar di OneSignal.
Jika Anda menguji pemberitahuan push, Anda harus melakukannya di perangkat iOS nyata, apakah Anda menggunakan OneSignal atau tidak.
@Nightsd01
Maaf, posting terakhir saya tidak begitu jelas. Saya tidak bermaksud menerima dorongan pada simulator tetapi mendaftarkan perangkat simulator.
Jadi setelah OneSignal.init('ONESIGNAL_APP_ID');
Saya mengharapkan perangkat simulasi terdaftar di pengguna berlangganan saya dengan label Ios Simulator Unsupported
seperti yang Anda lihat di tangkapan layar berikut:
Inilah respons OneSignal.getPermissionSubscriptionState untuk simulator yang terdaftar:
Tetapi seringkali inisialisasi gagal pada simulator dan saya tidak melihatnya di bawah https://onesignal.com/apps/ONESIGNAL_APP_ID/players
@el-lsan Saya memiliki masalah yang sama Push token is null, apakah Anda menemukan solusi?
@adirzoari setelah memperbarui ke "react-native-onesignal": "^3.2.3"
masalah telah diperbaiki untuk perangkat nyata, jika Anda bermaksud menerima token nol untuk simulator, saya percaya begitulah seharusnya.
Di sisi lain saya mengharapkan userId
disetel untuk simulator tetapi untuk beberapa alasan aneh sering kali gagal dan mengembalikan nol!
Saya menggunakan perangkat nyata dan mendapatkan token nol
@adirzoari Aneh! Coba bersihkan cache rm -rf node_modules/ && yarn cache clean && yarn install && yarn start -- --reset-cache
dan periksa kembali langkah -
@el-lsan pushToken adalah nol tetapi di userId memiliki string unik. di onesignal saya dapat
Kesalahan Perpustakaan Layanan Google Play
Saya memiliki masalah yang sama dengan 3.2.7 (simulator - OK/perangkat nyata - NOK) tetapi membersihkan cache seperti yang disarankan oleh @el-lsan membuatnya berjalan tanpa masalah
@Nightsd01 Sama di sini.
Menghapus init dengan appId:nil di RCTOneSignal.m membantu
hai, tolong tambahkan gambar perubahan berikut.
@adirzoari setelah memperbarui ke
"react-native-onesignal": "^3.2.3"
masalah telah diperbaiki untuk perangkat nyata, jika Anda bermaksud menerima token nol untuk simulator, saya percaya begitulah seharusnya.Di sisi lain saya mengharapkan
userId
disetel untuk simulator tetapi untuk beberapa alasan aneh sering kali gagal dan mengembalikan nol!
hai saya mendapatkan pushToken: null di simulator, dan hanya mendapatkan userId untuk simulator.
Apakah saya akan mendapatkan pushToken untuk perangkat nyata, harap konfirmasi, (apakah, saya harus khawatir tentang masalah null pushToken di simulator atau tidak?).
Komentar yang paling membantu
Halo semuanya @dooboolab @hhunaid @408dev @el-lsan @neo125874 @Jarred-Sumner
Pembaruan baru (3.2.3) telah dirilis dan akan memperbaiki masalah ini. Jangan ragu untuk memberi tahu saya jika Anda melihat masalah ini (atau masalah lain) lagi dan saya akan dengan senang hati menyelidikinya.