iOS
Send Push Notifications
Notifikasi Push iOS dengan Cloud Code dan Swift
27 mnt
mengirim notifikasi push menggunakan kode cloud dengan swift pendahuluan bagian ini menjelaskan bagaimana anda dapat mengirim notifikasi push menggunakan kode cloud melalui back4app inilah tampilan yang akan terlihat kapan saja, anda dapat mengakses proyek lengkap yang dibangun dengan tutorial ini di repositori github untuk menyelesaikan panduan cepat ini, anda perlu xcode sebuah aplikasi yang dibuat di back4app ikuti tutorial aplikasi parse baru untuk belajar cara membuat aplikasi parse di back4app sebuah aplikasi ios yang terhubung ke back4app catatan ikuti tutorial instalasi parse sdk (swift) untuk membuat proyek xcode yang terhubung ke back4app sebuah aplikasi ios yang disiapkan melalui tutorial notifikasi push back4app melalui dashboard sebuah perangkat ios, iphone atau ipad, yang menjalankan ios 10 atau lebih baru akun pengembang apple berbayar 1 siapkan aplikasi ios anda untuk menerima push setiap aplikasi parse yang diinstal pada perangkat yang terdaftar untuk notifikasi push memiliki instalasi instalasi objek objek instalasi instalasi adalah tempat anda menyimpan semua data yang diperlukan untuk menargetkan notifikasi push misalnya, dalam aplikasi anda, anda dapat menyimpan tim mana yang diminati salah satu pengguna anda untuk mengirim pembaruan tentang kinerja mereka menyimpan objek instalasi instalasi juga diperlukan untuk melacak peristiwa pembukaan aplikasi terkait push cara termudah untuk mulai mengirim notifikasi adalah dengan menggunakan saluran ini memungkinkan anda menggunakan model penerbit pelanggan untuk mengirim push perangkat mulai dengan berlangganan ke satu atau lebih saluran, dan notifikasi kemudian dapat dikirim ke pelanggan ini saluran yang disubscribe oleh instalasi instalasi disimpan di dalam saluran saluran bidang dari instalasi instalasi objek setelah itu, kita akan membahas pengiriman notifikasi push yang ditargetkan kepada satu pengguna atau sekelompok pengguna berdasarkan kueri ke depan, kami akan menganggap anda telah menyelesaikan semua langkah dari tutorial notifikasi push back4app melalui dashboard , bahkan jika anda menggunakan proyek ios yang dibangun dengan tutorial ini yang tersedia di repositori github anda seharusnya sudah memiliki notifikasi push dasar yang berfungsi dan juga dapat mengirim push melalui konsol admin 2 langganan perangkat anda ke saluran berita pertama, kami akan menambahkan saluran ke objek instalasi anda kami akan melakukan ini dengan mengubah metode createinstallationonparse createinstallationonparse di file app delegate kami buka file appdelegate m file appdelegate m , dan pastikan versi anda dari createinstallationonparse createinstallationonparse sama dengan kode di bawah ini appdelegate swift 1 func createinstallationonparse(devicetokendata\ data){ 2 if let installation = pfinstallation current(){ 3 installation setdevicetokenfrom(devicetokendata) 4 installation setobject(\["news"], forkey "channels") 5 installation saveinbackground { 6 (success bool, error error?) in 7 if (success) { 8 print("you have successfully saved your push installation to back4app!") 9 } else { 10 if let myerror = error{ 11 print("error saving parse installation \\(myerror localizeddescription)") 12 }else{ 13 print("uknown error") 14 } 15 } 16 } 17 } 18 } kami menambahkan satu baris kode baru âinstallation setobject(\[ânewsâ], forkey âchannelsâ)â yang akan mengatur array saluran objek instalasi untuk berisi satu saluran yang disebut ânewsâ ini akan memungkinkan kami untuk mengirim pesan kepada semua orang yang berlangganan saluran yang disebut news news melalui kode cloud 2\ uji dengan menjalankan aplikasi anda di perangkat fisik anda tidak dapat menjalankan ini di simulator anda memerlukan token push yang sebenarnya untuk memperbarui catatan instalasi anda, jadi perangkat fisik adalah suatu keharusan 3\ setelah berhasil dijalankan, anda harus melihat sesuatu yang mirip dengan gambar di bawah ini di instalasi instalasi bagian dasbor anda anda dapat memeriksanya dengan pergi ke dasbor aplikasi anda di situs web back4app dan kemudian memeriksa tabel instalasi di bawah kolom saluran, anda harus melihat berita berita , yang menunjukkan bahwa anda sekarang terdaftar di berita berita saluran push 3 buat kode cloud anda untuk mengetahui lebih lanjut tentang cara memulai dengan cloud code lihat di tutorial cloud code untuk ios buat sebuah js js file untuk menempatkan cloud code anda anda perlu menyebutnya main js main js agar back4app tahu ini adalah tempat anda menyimpan kode cloud anda tentukan sebuah fungsi cloud, menggunakan parse cloud define parse cloud define , untuk memanggil notifikasi push di dalam fungsi kita akan memanggil parse push send parse push send untuk mengirim push ke saluran â news news â diperlukan untuk menggunakan master key dalam operasi ini kode berikut menjalankan langkah langkah ini parse server 3 x // main js 1 parse cloud define("pushsample", (request) => { 2 3 return parse push send({ 4 channels \["news"], 5 data { 6 title "hello from the cloud code", 7 alert "back4app rocks!", 8 } 9 }, { usemasterkey true }); 10 }); parse server 2 x //main js 1 parse cloud define("pushsample", function (request, response) { 2 parse push send({ 3 channels \["news"], 4 data { 5 title "hello from the cloud code", 6 alert "back4app rocks!", 7 } 8 }, { 9 success function () { 10 // push was successful 11 response success("push sent"); 12 console log("success push sent"); 13 }, 14 error function (error) { 15 // push was unsucessful 16 response error("error with push " + error); 17 console log("error " + error); 18 }, 19 usemasterkey true 20 }); 21 }) 4 unggah ke cloud code pergi ke aplikasi anda di situs web back4app dan klik pada dasbor dasbor temukan cloud code cloud code dan klik pada fungsi & web hosting fungsi & web hosting ini terlihat seperti ini 3\ unggah atau buat file baru (anda juga dapat mengedit main js main js file saat ini langsung di browser) kemudian, klik pada terapkan terapkan seperti yang ditunjukkan di sini 5 panggil cloud code dari aplikasi ios anda sekarang, kita akan menulis beberapa kode untuk memanggil fungsi cloud ini dari aplikasi anda anda akan membutuhkan simulator dan perangkat fisik untuk menyelesaikan tugas ini anda akan memanggil fungsi cloud dari aplikasi anda yang berjalan di simulator dan anda akan melihat push muncul di perangkat fisik anda perangkat fisik anda seharusnya benar benar dalam keadaan terkunci dengan layar kunci aktif untuk melihat push push tidak akan muncul di layar jika anda berada di dalam aplikasi yang mengirimnya saat anda menerima push 2\ buka file viewcontroller swift viewcontroller swift proyek anda kita perlu menyertakan parse di view controller dengan menambahkan kode berikut âimport parseâ di bagian atas file viewcontroller swift 3\ selanjutnya di viewcontroller swift viewcontroller swift file kita akan memanggil fungsi alert dari metode viewdidappear alert ini akan memungkinkan anda untuk memicu kode cloud code yang akan mengirim push ke perangkat anda pastikan untuk menyertakan blok kode berikut setelah fungsi viewdidload viewdidload viewcontroller swift viewcontroller swift 1 override func viewdidappear( animated bool) { 2 asktosendpushnotifications() 3 } 4 5 func asktosendpushnotifications() { 6 let alertview = uialertcontroller(title "send a push to the news channel", message nil, preferredstyle alert) 7 let okaction = uialertaction(title "ok", style default) { (action\ uialertaction) in 8 self sendpushnotifications() 9 } 10 alertview\ addaction(okaction) 11 let cancelaction = uialertaction(title "cancel", style cancel) { (action\ uialertaction) in 12 } 13 alertview\ addaction(cancelaction) 14 if let presenter = alertview\ popoverpresentationcontroller { 15 presenter sourceview = self view 16 presenter sourcerect = self view\ bounds 17 } 18 self present(alertview, animated true, completion\ nil) 19 } 20 21 func sendpushnotifications() { 22 let cloudparams \[anyhashable\ string] = \[ ] 23 pfcloud callfunction(inbackground "pushsample", withparameters cloudparams, block { 24 (result any?, error error?) > void in 25 if error != nil { 26 if let descrip = error? localizeddescription{ 27 print(descrip) 28 } 29 }else{ 30 print(result as! string) 31 } 32 }) 33 } 4\ jalankan aplikasi anda di simulator dan ketika alert meminta untuk mengirim push muncul, tekan âokâ di perangkat fisik anda, anda harus melihat push muncul di layar kunci, seperti ini 6 panggil cloud code dari rest api rest api menyediakan cara yang cepat dan mudah untuk menguji apakah fungsi cloud anda berfungsi cukup gunakan kode di bawah ini di terminal atau command prompt anda klik untuk mengetahui lebih lanjut tentang cara memulai dengan command line di linux , macos atau windows untuk menguji notifikasi push, cukup gunakan kode rest saat perangkat dalam keadaan tertutup 7 kirim notifikasi push yang ditargetkan menggunakan objek pengguna ke depan, kami akan menggunakan proyek ios yang berbeda yang sudah memiliki fitur pendaftaran dan masuk dasar kami akan menggunakan proyek ios ini yang dapat kami tunjukkan kepada anda bagaimana mendeteksi apakah seorang pengguna sudah masuk, dan jika ya, menyimpan instalasi mereka dengan tautan ke id objek mereka untuk kueri dalam kode cloud anda dapat mengunduh proyek ios lengkap yang dibangun dengan tutorial bagian ini di repositori github tetapi anda tetap harus melakukan semua pengaturan dari tutorial sebelumnya yang menjelaskan cara mengirim push dari dasbor back4app anda dapat mengunduh proyek ios lengkap yang dibangun dengan tutorial bagian ini di repositori github tetapi anda tetap harus melakukan semua pengaturan dari tutorial sebelumnya yang menjelaskan cara mengirim push dari dasbor back4app dapatkan versi baru dari aplikasi yang disiapkan dan daftar atau masuk ke aplikasi pertama, pastikan anda mengunduh template yang berfungsi dari repositori github kami tidak akan menjelaskan semua langkah untuk membangun aplikasi ini, sebaliknya kami akan fokus pada pengaturan kode cloud dan mengapa itu berfungsi setelah anda membuka aplikasi baru ini, pastikan untuk memasukkan kredensial aplikasi anda sendiri di file appdelegate swift appdelegate swift 1 func application( application uiapplication, didfinishlaunchingwithoptions launchoptions \[uiapplicationlaunchoptionskey any]?) > bool { 2 let configuration = parseclientconfiguration { 3 $0 applicationid = "paste your application id here" 4 $0 clientkey = "paste your client id here" 5 $0 server = "https //parseapi back4app com" 6 } 7 parse initialize(with configuration) 8 return true 9 } 2\ aplikasi ini memiliki beberapa perbedaan besar dibandingkan aplikasi sebelumnya ini memiliki 2 bagian, satu untuk masuk ke aplikasi anda dan satu bagian ketika anda tidak masuk ke aplikasi anda perubahan besar berikutnya adalah fungsi âcreateinstallationonparseâ di file appdelegate swift kami telah menambahkan 1 baris yang menyimpan id objek pengguna sebagai bagian dari objek instalasi dengan cara itu kami dapat mengetahui pengguna mana yang terkait dengan objek instalasi mana dan dapat menargetkan mereka secara individu untuk push appdelegate swift 1 func createinstallationonparse(devicetokendata\ data){ 2 if let installation = pfinstallation current(){ 3 installation setdevicetokenfrom(devicetokendata) 4 installation setobject(\["news"], forkey "channels") 5 if let userid = pfuser current()? objectid { 6 installation setobject(userid, forkey "userid") 7 } 8 installation saveinbackground { 9 (success bool, error error?) in 10 if (success) { 11 print("you have successfully saved your push installation to back4app!") 12 } else { 13 if let myerror = error{ 14 print("error saving parse installation \\(myerror localizeddescription)") 15 }else{ 16 print("uknown error") 17 } 18 } 19 } 20 } 21 } 3\ karena kami sekarang menyimpan id objek pengguna sebagai bagian dari objek instalasi, kami tidak ingin meminta token push baru sampai pengguna masuk kami tidak ingin meminta token langsung dari fungsi âapplication didfinishlaunchingwithoptionsâ di file appdelegate swift, sebaliknya kami ingin memanggilnya dari fungsi âviewdidappearâ di loggedinviewcontroller di âviewdidappearâ kami memanggil fungsi di appdelegate untuk meminta akses ke token notifikasi push dari apple karena anda hanya dapat melihat bagian ini setelah anda masuk, kami dapat mengasumsikan pengguna sudah masuk ketika kami membuat objek instalasi, tetapi hanya untuk aman kami menggunakan âif let statementâ untuk membuka objek parse currentuser() dan mengambil id objek loggedinviewcontroller swift 1 override func viewdidappear( animated bool) { 2 appdelegate? startpushnotifications() 3 } appdelegate swift 1 if let userid = pfuser current()? objectid { 2 installation setobject(userid, forkey "userid") 3 } 4\ oke, sekarang, untuk mendaftar atau masuk di perangkat fisik anda (iphone atau ipad) mulai aplikasi anda harus melihat gambar di bawah anda harus mendaftar untuk membuat pengguna baru atau masuk jika anda sudah membuat pengguna di aplikasi anda inilah tampilannya anda sekarang seharusnya dapat melihat loggedinviewcontroller itu seharusnya terlihat seperti ini jika anda mencoba mengirim push kepada diri sendiri, itu tidak akan berhasil karena kami belum menambahkan metode tersebut ke kode cloud jadi, itulah yang akan kami lakukan selanjutnya 8 tambahkan metode push yang ditargetkan ke kode cloud buka main js main js file yang anda buat sebelumnya dan tambahkan fungsi berikut untuk menargetkan instalasi berdasarkan id pengguna diperlukan untuk menggunakan master key dalam operasi ini parse server 3 x // main js 1 parse cloud define('sendpushtoyourself', (request) => { 2 let userid = request user id; 3 4 let query = new parse query(parse installation); 5 query equalto("userid", userid); 6 query descending("updatedat"); 7 return parse push send({ 8 where query, 9 data { 10 title "hello from the cloud code", 11 alert "back4app rocks! single message!", 12 } 13 }, { usemasterkey true }); 14 }); 15 16 parse cloud define('sendpushtoallusers', (request) => { 17 let currentuser = request user; 18 let userids = \[currentuser id]; 19 20 let query = new parse query(parse installation); 21 query containedin('userid', userids); 22 return parse push send({ 23 where query, 24 data { 25 title "hello from the cloud code", 26 alert "back4app rocks! group message!", 27 } 28 }, { usemasterkey true }); 29 }); parse server 2 x //main js 1 parse cloud define('sendpushtoyourself', function (request, response) { 2 var currentuser = request user; 3 var userid = currentuser id; 4 5 var query = new parse query("installation"); 6 query equalto("userid", userid); 7 query descending("updatedat"); 8 parse push send({ 9 where query, 10 data { 11 title "hello from the cloud code", 12 alert "back4app rocks! single message!", 13 } 14 }, { 15 usemasterkey true, 16 success function () { 17 response success("success sending a single push!"); 18 }, 19 error function (error) { 20 response error(error code + " " + error description); 21 } 22 }); 23 }); 24 25 parse cloud define('sendpushtoallusers', function (request, response) { 26 var currentuser = request user; 27 var userids = \[currentuser id]; 28 29 var query = new parse query(parse installation); 30 query containedin('userid', userids); 31 parse push send({ 32 where query, 33 data { 34 title "hello from the cloud code", 35 alert "back4app rocks! group message!", 36 } 37 }, { 38 usemasterkey true, 39 success function () { 40 response success('success sending a group push!'); 41 }, 42 error function (message) { 43 response error(error code + " " + error description); 44 } 45 }); 46 }); 9 unggah ke cloud code pergi ke aplikasi anda di situs web back4app dan klik pada dasbor dasbor temukan cloud code cloud code dan klik pada fungsi & hosting web fungsi & hosting web ini terlihat seperti ini 3\ unggah atau buat file baru (anda juga dapat mengedit file main js main js yang ada langsung di browser) kemudian, klik pada terapkan terapkan seperti yang ditunjukkan di sini 10 uji bahwa anda dapat mengirim notifikasi dorong yang ditargetkan kepada diri sendiri buka aplikasi anda dari simulator sambil membiarkan perangkat fisik anda tertutup dengan layar kunci aktif anda dapat menguji bahwa kedua fungsi dorong berfungsi dengan menekan tombol âkirim dorong kepada diri sendiriâ dan tombol âkirim dorong kepada sekelompok orangâ anda harus melihat dorongan muncul di layar kunci perangkat anda pikiran akhir sekarang, anda harus memiliki pemahaman yang kuat tentang cara mengirim dorongan berdasarkan saluran pengguna atau id objek pengguna atau kueri lain yang melibatkan mendapatkan id objek pengguna ingat bahwa untuk menyimpan id objek pengguna anda harus menambahkannya ke instalasi dorong dan hanya meminta token dorong ketika pengguna sudah masuk saat mengirim dorongan melalui kueri, ketahuilah bahwa secara default dibatasi hingga 100 hasil dan beberapa pengguna mungkin memiliki lebih dari satu objek instalasi juga tidak disarankan untuk mengirim dorongan ke array objek instalasi yang lebih besar dari 100 hasil ini bisa mengakibatkan beberapa dorongan tidak terkirim jika anda berurusan dengan kelompok besar orang, lebih baik menggunakan saluran atau mengirim dorongan dalam permintaan berulang selesai! pada tahap ini, anda dapat mengirim notifikasi dorong menggunakan cloud code melalui back4app! selamat!