中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.NET對接極光消息推送的實現方法是什么

發布時間:2022-01-10 18:05:28 來源:億速云 閱讀:158 作者:柒染 欄目:開發技術

今天就跟大家聊聊有關.NET對接極光消息推送的實現方法是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

什么是APP消息推送?

  很多手機APP會不定時的給用戶推送消息,例如一些新聞APP會給用戶推送用戶可能感興趣的新聞,或者APP有更新了,會給用戶推送是否選擇更新的消息等等,這就是所謂的“消息推送”。

更多APP消息推送的介紹可查閱該篇文章:十分鐘帶你了解APP消息推送(Push)????

如下是我們日常生活中常見的一些APP消息推送示例:

強營銷類:

直接把營銷力度,營銷模式以一種叫賣式方式展現出來,目的通過優惠,時效性勾起用戶貪小便宜的心理,好奇心理,如下所示:

.NET對接極光消息推送的實現方法是什么

強關聯性:

在信息爆炸的時代,大腦會自動篩選對自己有價值的信息和沒價值的信息,如果在一條信息中有@你,您之類的言語,大腦會自動識別,使用直接關聯的技巧在于巧用“你”相關的字眼。

.NET對接極光消息推送的實現方法是什么

強熱點:熱點對眼球的吸引程度不言而喻,但是追熱點這些事情呢,新聞資訊類由于其自身的屬性,在熱點話題這一塊有天然優勢,而其他類型的APP對熱點的解讀和追蹤多少差強人意,尤其文案書寫這塊,沒有杜蕾斯這樣的能力,就別強撩用戶,適得其反反而顯得沒水平。

.NET對接極光消息推送的實現方法是什么

強話題性:

營銷界有這么一句話,沒有違和感就創造不了傳播,不出位就制造不了話題,那么強話題性的文案自帶傳播屬性,一般都會擊中用戶內心的某個感觸,比如對社會的憤世嫉俗,對高房價的逆反心理,對旅游的文藝心等等。

.NET對接極光消息推送的實現方法是什么

極光推送介紹

  JPush 是經過考驗的大規模 App 推送平臺,每天推送消息量級為數百億條。 開發者集成 SDK 后,可以通過調用 API 推送消息。同時,JPush 提供可視化的 web 端控制臺發送通知,統計分析推送效果。 JPush 全面支持 Android, iOS, Winphone 三大手機平臺。

為什么選擇極光作為APP的消息推送平臺?

  • 首先極光推送支持多平臺推送

  • 支持大規模的消息推送極光推送

  • 對接方便,不同后端語言都提供了對應的SDK

  • 對于免費賬號支持也非常的友好(不過免費賬號高峰期有資源瓶頸,假如需要及時性很強的話可以購買高級版收費服務)

特權對比????

.NET對接極光消息推送的實現方法是什么

快速對接Jpush極光推送

極光詳細對接文檔????

  • 到極光推送官方網站注冊開發者帳號;

  • 登錄進入管理控制臺,創建應用程序,得到 Appkey(SDK 與服務器端通過 Appkey 互相識別);

  • 在推送設置中給 Android 設置包名、給 iOS 上傳證書、啟用 WinPhone,根據你的需求進行選擇;

.NET FX 4.5項目接入

  該項目是基于C#/.NET(.NET Framework4.5.1的示例)極光推送對接實例,主要是對接極光集成為我們.Neter提供的SKD。在這里我主要封裝了單個設備注冊ID推送,設備注冊ID批量推送和廣播推送三種推送三種方式,其他的推送方式大家可以參考文檔去進行封裝。

JPuhs-Sample????(封裝示例源碼)

1、在項目中引入Jiguang.JPush nuget包

.NET對接極光消息推送的實現方法是什么

2、極光推送調用

namespace Jpush.Controllers
{
    /// <summary>
    /// 極光推送管理
    /// </summary>
    public class JPushManageController : Controller
    {

        private readonly JPushClientUtil _jPushClientUtil;

        public JPushManageController(JPushClientUtil jPushClientUtil)
        { 
          this._jPushClientUtil=jPushClientUtil;
        }


        /// <summary>
        /// 單個設備注冊ID推送
        /// </summary>
        /// <returns></returns>
        public ActionResult SendPushByRegistrationId()
        {
            var isOk = _jPushClientUtil.SendPushByRegistrationId("追逐時光者歡迎你!", "2022新年快樂", "1507bfd3f715abecfa4", new Dictionary<string, object>(), true);

            return Json(new { result = isOk });
        }


        /// <summary>
        /// 設備注冊ID批量推送(一次推送最多1000個)
        /// </summary>
        /// <returns></returns>
        public ActionResult SendPushByRegistrationIdList()
        {
            var registrationIds = new List<string>() { "1507bfd3f715abecfa455", "1507bfd3f715abecfa433", "1507bfd3f715abecfa422" };
            var isOk = _jPushClientUtil.SendPushByRegistrationIdList("追逐時光者歡迎你!", "2022新年快樂", registrationIds, new Dictionary<string, object>(), true);

            return Json(new { result = isOk });
        }


        /// <summary>
        /// 廣播推送
        /// </summary>
        /// <returns></returns>
        public ActionResult BroadcastPush()
        {
            var isOk = _jPushClientUtil.BroadcastPush("追逐時光者歡迎你!", "2022新年快樂", new Dictionary<string, object>(), true);

            return Json(new { result = isOk });
        }

    }
}

3、極光推送工具類(JPushClientUtil)

namespace Jpush.Common
{
    /// <summary>
    /// 極光推送工具類
    /// </summary>
    public class JPushClientUtil
    {
        private const string appKey = "youAppKey";
        private const string masterSecret = "youMasterSecret";
        private static JPushClient client = new JPushClient(appKey, masterSecret);

        /// <summary>
        /// 單個設備注冊ID推送
        /// </summary>
        /// <param name="title">推送標題(Android才會存在)</param>
        /// <param name="noticeContent">通知內容</param>
        /// <param name="registrationid">設備注冊ID(registration_id)</param>
        /// <param name="extrasParam">拓展參數(傳入App接收的一些參數標識)</param>
        /// <param name="isApnsProduction">注意:iOS是否推送生產環境(true是,false否推開發環境)</param>
        /// <returns></returns>
        public bool SendPushByRegistrationId(string title, string noticeContent, string registrationid, Dictionary<string, object> extrasParam = null, bool isApnsProduction = true)
        {
            //設備標識參數拼接
            var pushRegistrationId = new RegistrationIdList();
            pushRegistrationId.registration_id.Add(registrationid);

            return JPushBaseSendMessage(title, noticeContent, isApnsProduction, pushRegistrationId, extrasParam);
        }

        /// <summary>
        /// 設備注冊ID批量推送(一次推送最多1000個)
        /// </summary>
        /// <param name="title">推送標題(Android才會存在)</param>
        /// <param name="noticeContent">通知內容</param>
        /// <param name="registrationIds">注冊ID(registration_id)列表,一次推送最多1000個</param>
        /// <param name="extrasParam">拓展參數(傳入App接收的一些參數標識)</param>
        /// <param name="isApnsProduction">注意:iOS是否推送生產環境(true是,false否推開發環境)</param>
        /// <returns></returns>
        public bool SendPushByRegistrationIdList(string title, string noticeContent, List<string> registrationIds, Dictionary<string, object> extrasParam = null, bool isApnsProduction = true)
        {
            //設備標識參數拼接
            var pushRegistrationId = new RegistrationIdList();
            pushRegistrationId.registration_id.AddRange(registrationIds);

            return JPushBaseSendMessage(title, noticeContent, isApnsProduction, pushRegistrationId, extrasParam);
        }

        /// <summary>
        /// 廣播推送
        /// </summary>
        /// <param name="title">推送標題(Android才會存在)</param>
        /// <param name="noticeContent">通知內容</param>
        /// <param name="extrasParam">拓展參數(傳入App接收的一些參數標識)</param>
        /// <param name="isApnsProduction">注意:iOS是否推送生產環境(true是,false否推開發環境)</param>
        /// <returns></returns>
        public bool BroadcastPush(string title, string noticeContent, Dictionary<string, object> extrasParam = null, bool isApnsProduction = true)
        {
            return JPushBaseSendMessage(title, noticeContent, isApnsProduction, null, extrasParam, true);
        }

        /// <summary>
        /// 極光消息推送公共方法
        /// </summary>
        /// <param name="title">推送標題(Android才會存在)</param>
        /// <param name="noticeContent">通知內容</param>
        /// <param name="pushRegistrationId">設備注冊ID(registration_id)</param>
        /// <param name="isApnsProduction">iOS是否推送生產環境(true是,false否推開發環境)</param>
        /// <param name="extrasParam">拓展參數</param>
        /// <param name="isRadioBroadcast">是否廣播</param>
        /// <returns></returns>
        private bool JPushBaseSendMessage(string title, string noticeContent, bool isApnsProduction, RegistrationIdList pushRegistrationId, Dictionary<string, object> extrasParam, bool isRadioBroadcast = false)
        {
            try
            {
                object audience = pushRegistrationId;

                if (isRadioBroadcast)
                {
                    audience = "all";
                }

                var pushPayload = new PushPayload()
                {
                    Platform = new List<string> { "android", "ios" },//推送平臺設置
                    Audience = audience,//推送目標
                    //notifacation:通知內容體。是被推送到客戶端的內容。與 message 一起二者必須有其一,可以二者并存。
                    Notification = new Notification
                    {
                        Alert = noticeContent,//通知內容
                        Android = new Android
                        {
                            Alert = noticeContent,//通知內容
                            Title = title,//通知標題
                            URIActivity = "com.king.sysclearning.platform.app.JPushOpenClickActivity",//該字段用于指定開發者想要打開的 activity,值為 activity 節點的 “android:name”屬性值;適配華為、小米、vivo廠商通道跳轉
                            URIAction = "com.king.sysclearning.platform.app.JPushOpenClickActivity",//該字段用于指定開發者想要打開的 activity,值為 "activity"-"intent-filter"-"action" 節點的 "android:name" 屬性值;適配 oppo、fcm跳轉
                            Extras = extrasParam //這里自定義JSON格式的Key/Value信息,以供業務使用。
                        },
                        IOS = new IOS
                        {
                            Alert = noticeContent,
                            Badge = "+1",//此項是指定此推送的badge自動加1
                            Extras = extrasParam //這里自定義JSON格式的Key/Value信息,以供業務使用。
                        }
                    },
                    Options = new Options//可選參數
                    {
                        //iOS 環境不一致問題:API 推送消息給 iOS,需要設置 apns_production 指定推送的環境,false 為開發,true 為生產。
                        IsApnsProduction = isApnsProduction// 設置 iOS 推送生產環境。不設置默認為開發環境。
                    }
                };

                var response = client.SendPush(pushPayload);
                //200一定是正確。所有異常都不使用 200 返回碼
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            catch (Exception ex)
            {
                return false;
            }
        }
    }

    public class RegistrationIdList
    {
        /// <summary>
        /// 設備注冊ID
        /// </summary>
        public List<string> registration_id { get; set; } = new List<string>();
    }
}

看完上述內容,你們對.NET對接極光消息推送的實現方法是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

濮阳市| 香格里拉县| 佳木斯市| 施甸县| 雅江县| 三亚市| 神木县| 四会市| 彭阳县| 虎林市| 平昌县| 宜川县| 霸州市| 汝南县| 凤翔县| 融水| 侯马市| 灵璧县| 益阳市| 石阡县| 澄迈县| 绥江县| 漯河市| 九江县| 慈溪市| 承德市| 长顺县| 衡山县| 新河县| 都匀市| 辽宁省| 聂荣县| 南宫市| 沾益县| 威宁| 河池市| 灵丘县| 纳雍县| 积石山| 乌审旗| 博白县|