pu.sh开源项目

我要开发同款
匿名用户2021年11月09日
36阅读
开发技术SHELL
所属分类终端/远程登录、应用工具
授权协议MIT License

作品详情

pu.sh

AbashscripttosendiOSpushnotificationswiththeApplePushNotificationservice(APNs)

About

InordertotestiOSpushnotificationsyoumighthaveyourownserversetupormaybeyouuseoneofthemanypushnotificationservicesthatalreadyexist.Allthistakesalotoftimeandefforttogetupandrunning.Ideally,youwouldprobablyliketostartsendingnotificationsjustwithamac,aniOSdeviceandzeroincash(excludingthemoneyyou'vepaidforyourmacanddeviceofcourse).Withtheuseofwebtokensandtheshellscriptcontainedhereinyoucanstartsendingpushnotificationstoyourdevicesinminuteswhilegettingsomefeedbackeachtimesomethinggoeswrong.

FeaturesUsesJSONwebtokensinsteadofcertificates.FasterandpainlessDisplayserrormessages,ifany,returnedbyAPNsNoexternalservicesorlibraries(err,exceptOpenSSL)AlldonewithasinglebashscriptAlldonetransparentlywithrespecttoyourdataInstallationClonetherepoInstallOpenSSLifyouhaven'talreadyfonesoGetadevicetokenObtainyourencryptionkeyEnteryourowndatainthescriptRunthescript(./pu.sh)Youcanoptionallypassoneofthereadymade.jsonfilesfoundhereasaparametertopu.shInstallOpenSSL

YoucanskipthisifyouhavealreadyinstalledOpenSSL.Onamac:

OpenaterminalInstallhomebrew:/usr/bin/ruby-e"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"TypebrewinstallopensslGettingadevicetoken

Belowarethemethodsofyourappsapplicationdelegate,withsomeshortexplanationcomments,youneedtoobtainadevicetoken.

/**Hereyouregisterforremotenotifications*/funcapplication(_application:UIApplication,didFinishLaunchingWithOptionslaunchOptions:[UIApplication.LaunchOptionsKey:Any]?)->Bool{application.registerForRemoteNotifications()returntrue}/**Hereyouprintoutyourdevicetoken*/funcapplication(_application:UIApplication,didRegisterForRemoteNotificationsWithDeviceTokendeviceToken:Data){lettoken=deviceToken.hexEncodedString()//nowthetokenwillappearinthexcodeconsoleprint(token)}/**ThishelpermethodconvertsthedevicetokenfrmDatatoString*soyoucouldjustpasteitintothescriptbelow*/funchexEncodedString()->String{returnmap{String(format:"%02hhx",$0)}.joined()}Obtainyourkey

YouneedanAPNsauthenticationtokensigningkeytogeneratethetokensusedbyyourserverinordertosendpushnotifications.Yourequestthiskeyfromyourdeveloperaccountondeveloper.apple.comintheKeys➙Allsectionasshownbelow.

Aftercontinuingtothenextstepyouget:

A10-characterstringwiththekeyID.Keepthisonhandyouwillneedit.Ifyouforgetititisstillavailableinthedeveloperportal.Asigningkeyasa .p8textfile.Keepthissomewheresafe.Forinstance,don'tkeepitinyoursourcecoderepository.Ifyouloseitit'sgoneforeverandyouwillhavetorevokeitandregenerateit.Ifthiskeyiscompromisedinanywayitcanbeusedtosendpushnotificationstoyourapps
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论