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 https //github com/templates back4app/ios install sdk untuk menyelesaikan panduan cepat ini, anda perlu xcode https //developer apple com/xcode/ sebuah aplikasi yang dibuat di back4app ikuti tutorial aplikasi parse baru https //www back4app com/docs/get started/new parse app untuk belajar cara membuat aplikasi parse di back4app sebuah aplikasi ios yang terhubung ke back4app catatan ikuti tutorial instalasi parse sdk (swift) https //www back4app com/docs/ios/parse swift sdk untuk membuat proyek xcode yang terhubung ke back4app sebuah aplikasi ios yang disiapkan melalui tutorial notifikasi push back4app melalui dashboard https //www back4app com/docs/ios/push notifications/best ios push notification service 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 \<font color="#2166ae">instalasi\</font> objek objek \<font color="#2166ae">instalasi\</font> 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 \<font color="#2166ae">instalasi\</font> 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 \<font color="#2166ae">instalasi\</font> disimpan di dalam \<font color="#2166ae">saluran\</font> bidang dari \<font color="#2166ae">instalasi\</font> 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 https //www back4app com/docs/ios/push notifications/best ios push notification service , bahkan jika anda menggunakan proyek ios yang dibangun dengan tutorial ini yang tersedia di repositori github https //github com/mpc20001/ios objc push cloud code 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 \<font color="#2166ae">createinstallationonparse\</font> di file app delegate kami buka \<font color="#2166ae">file appdelegate m\</font> , dan pastikan versi anda dari \<font color="#2166ae">createinstallationonparse\</font> 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 \<font color="#2166ae">news\</font> 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 \<font color="#2166ae">instalasi\</font> bagian dasbor anda anda dapat memeriksanya dengan pergi ke dasbor aplikasi anda di situs web back4app https //www back4app com/ dan kemudian memeriksa tabel instalasi di bawah kolom saluran, anda harus melihat \<font color="#2166ae">berita\</font> , yang menunjukkan bahwa anda sekarang terdaftar di \<font color="#2166ae">berita\</font> saluran push 3 buat kode cloud anda untuk mengetahui lebih lanjut tentang cara memulai dengan cloud code lihat di tutorial cloud code untuk ios https //www back4app com/docs buat sebuah \<font color="#2166ae"> js\</font> file untuk menempatkan cloud code anda anda perlu menyebutnya \<font color="#2166ae">main js\</font> agar back4app tahu ini adalah tempat anda menyimpan kode cloud anda tentukan sebuah fungsi cloud, menggunakan \<font color="#2166ae">parse cloud define\</font> , untuk memanggil notifikasi push di dalam fungsi kita akan memanggil \<font color="#2166ae">parse push send\</font> untuk mengirim push ke saluran â \<font color="#2166ae">news\</font> â 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 https //www back4app com/ dan klik pada \<font color="#2166ae">dasbor\</font> temukan \<font color="#2166ae">cloud code\</font> dan klik pada \<font color="#2166ae">fungsi \& web hosting\</font> ini terlihat seperti ini 3\ unggah atau buat file baru (anda juga dapat mengedit \<font color="#2166ae">main js\</font> file saat ini langsung di browser) kemudian, klik pada \<font color="#2166ae">terapkan\</font> 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 \<font color="#2166ae">viewcontroller swift\</font> proyek anda kita perlu menyertakan parse di view controller dengan menambahkan kode berikut âimport parseâ di bagian atas file viewcontroller swift https //github com/mpc20001/ios swift push cloud code/blob/master/addingparsesdk/viewcontroller swift#l10 1 import uikit 2 import parse 3\ selanjutnya di \<font color="#2166ae">viewcontroller swift\</font> 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 \<font color="#2166ae">viewdidload\</font> \<font color="#2166ae">\</font> 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 https //www digitalocean com/community/tutorials/an introduction to the linux terminal , macos https //blog teamtreehouse com/introduction to the mac os x command line atau windows https //www bleepingcomputer com/tutorials/windows command prompt introduction/ curl x post h "x parse application id your app id here" \\ h "x parse rest api key your rest api key here" \\ h "content type application/json" \\ d â{ // masukkan parameter fungsi di sini dalam format json }â \\ https //parseapi back4app com/functions/pushsample 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 https //github com/mpc20001/ios objc targeted push cloud code 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 https //github com/mpc20001/ios swift targeted push cloud code 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 https //github com/mpc20001/ios swift targeted push cloud code 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 \<font color="#2166ae">main js\</font> 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 https //www back4app com/ dan klik pada \<font color="#2166ae">dasbor\</font> temukan \<font color="#2166ae">cloud code\</font> dan klik pada \<font color="#2166ae">fungsi \& hosting web\</font> ini terlihat seperti ini 3\ unggah atau buat file baru (anda juga dapat mengedit file \<font color="#2166ae">main js\</font> yang ada langsung di browser) kemudian, klik pada \<font color="#2166ae">terapkan\</font> 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!