极光推送的自定义消息推送之后ios怎么使用

极光推送的自定义消息推送之后ios怎么使用,第1张

由于极光推送插件的IOS和android实现方式不一样,导致部分API不相同,如果是双平台的应用,需要自行判断。JPUSH服务端SDK,可以直接用程序来触发推送:docs/display/dev/Server-SDKsAndroid版示例<!DOCTYPE html><html><head><meta charset="utf-8"></head><body style="background:#fff;"><div onclick="uexJPush/pages/viewpage/pages/viewpageactionpageId=557241alert('cbSetAlia='+c);};uexJPushregistrationCode('你的激活码');uexJPushgetPushInfo();uexJPushsetDeviceToken('');//<b class="highLightB" style="background:Red;color:#fff;border-radius:3px;padding:0 2px;font-size:13px">推送</b>的统计uexWidgetonSuspend = function(){uexJPushonPause();};uexWidgetonResume = function(){uexJPushonResume();};//uexJPushsetPushStatus(0); 不接收所有<b class="highLightB" style="background:Red;color:#fff;border-radius:3px;padding:0 2px;font-size:13px">推送</b>//uexJPushsetPushStatus(1); 恢复接收所有<b class="highLightB" style="background:Red;color:#fff;border-radius:3px;padding:0 2px;font-size:13px">推送</b>/uexJPushcbGetPushStatus = function(a,b,c){//当前是否接收<b class="highLightB" style="background:Red;color:#fff;border-radius:3px;padding:0 2px;font-size:13px">推送</b> 10alert(c);};uexJPushgetPushStatus();/}};</script></body></html>IOS示例<!DOCTYPE HTML><html><head><title><b class="highLightB" style="background:Red;color:#fff;border-radius:3px;padding:0 2px;font-size:13px">推送</b>测试</title><script>function startPush(){uexDevicecbGetInfo = function(opId,dataType, data){var device = eval('('+data+')');//获取deviceTokenvar deviceToken = devicedeviceToken;if(deviceToken){alert("devictToken 111="+deviceToken);uexJPushsetDeviceToken(deviceToken);}}uexJPushregistrationCode('你的激活码');//设置是否接受<b class="highLightB" style="background:Red;color:#fff;border-radius:3px;padding:0 2px;font-size:13px">推送</b>uexJPushsetPushStatus('1');//获取deviceTokenuexDevicegetInfo('11'); }windowuexOnload = function(type){ uexJPushcbGetPushStatus=function(opId,dataType,data){alert("push cbGetPushStatus ="+data);}uexJPushcbSetTag= function(opId,dataType,data){alert("jpush cbSetTag="+data);}uexJPushcbSetAlia= function(opId,dataType,data){alert("jpush cbSetAlia="+data);}uexJPushcbGetPushInfo=function(opId,dataType,data){alert("<b class="highLightB" style="background:Red;color:#fff;border-radius:3px;padding:0 2px;font-size:13px">推送</b>消息格式为:"+data);}startPush();uexWidgetonResume = function(){startPush();};}function setTags(){uexJPushsetTag("xuleilei,gaomin,xiaoxi");}function setPush(a){uexJPushsetPushStatus(a);uexJPushgetPushStatus();}</script></head><body><div class="tit">极光<b class="highLightB" style="background:Red;color:#fff;border-radius:3px;padding:0 2px;font-size:13px">推送</b>功能</div><div class="conbor"><div class="consj"><span>1获取deviceToken</span><input class="btn" type="button" value="绑定token" onclick="uexDevicegetInfo('11');"><span>2解绑定<b class="highLightB" style="background:Red;color:#fff;border-radius:3px;padding:0 2px;font-size:13px">推送</b></span><input class="btn" type="button" value="解绑" onclick="setPush(0);"><span>3绑定<b class="highLightB" style="background:Red;color:#fff;border-radius:3px;padding:0 2px;font-size:13px">推送</b></span><input class="btn" type="button" value="绑定" onclick="setPush(1);"><span>4设置昵称</span><input id="uexBAEPushsetAlia"type="text" class="textbox" value="xuleilei"><input class="btn" type="button" value="设置" onclick="uexJPushsetAlia('hi');"><span>5设置tag</span><input id="uexBAEPushsetTag"type="text" class="textbox" value="xuleilei"><input class="btn" type="button" value="设置" onclick="setTags();"><input class="btn" type="button" value="返回" onclick="uexWindowback();"></div></div></body></html>

可以用第三方软件极光推送来实现。对于定制化需求较强的,或者想拥有自己推送平台的开发者,极光提供全功能的私有云方案。

极光推送快速开始步骤:1、到极光推送官方网站注册开发者帐号;

2、登录进入管理控制台,创建应用程序,得到 Appkey(SDK 与服务器端通过 Appkey 互相识别);

3、在推送设置中给 Android 设置包名、给 iOS 上传证书、启用 WinPhone,根据你的需求进行选择;

4、下载 SDK 集成到 App 里。

客户端初始化 JPush 成功后,JPush 服务端会分配一个 Registration ID,作为此设备的标识(同一个手机不同 App 的 Registration ID 是不同的)。开发者可以通过指定具体的 Registration ID 来进行对单一设备的推送。

极光推送第一篇:配置

极光推送第三篇:消息跳转和自定义

String regId = bundlegetString(JPushInterfaceEXTRA_REGISTRATION_ID);

还有其他的请看官方文档 接收推送消息 Receiver 了,我觉得其他的接收很少用到,这里就不罗列了。

用户点击了通知

未配置:此项则默认打开主页Activity

已配置:需要在我们定义的 MyReceiver 自己处理此事件

用户点击了通知栏中自定义的按钮。只有开发者使用了 MultiActionsNotificationBuilder 构建携带按钮的通知栏的通知时,才需要配置

用得少看官方 接收推送消息 Receiver 吧

JPush 服务的连接状态发生变化。

JPush极光推送可以只推送给指定的那部分android用户,通过使用标签,别名,Registration ID 和用户分群,开发者可以向特定的一个或多个用户推送消息。

JPush 是经过考验的大规模 App 推送平台,每天推送消息量级为数百亿条。 开发者集成 SDK 后,可以通过调用 API 推送消息。同时,JPush 提供可视化的 web 端控制台发送通知,统计分析推送效果。

开发者可以轻松地通过极光发送各个移动平台的系统通知,还可以在控制台编辑多种富文本展示模板; 极光还提供自定义消息的透传,客户端接到消息内容后根据自己的逻辑自由处理。

截止到2020年12月份,极光已经为约 1698万 款移动应用提供服务,其开发工具包(SDK)安装量累计467亿,月度独立活跃设备 14亿部

功能说明JPush SDK 收到推送,通过广播的方式,转发给开发者App,这样开发者就可以灵活地进行处理。这个动作不是必须的。用户有需要才定义 Receiver 类来处理 SDK过来的广播。如果不做这个动作,即不写自定义 Receiver,也不在 AndroidManifestxml 里配置这个 Receiver,则默认的行为是:接收到推送的自定义消息,则没有被处理可以正常收到通知,用户点击打开应用主界面接受广播如果全部类型的广播都接收,则需要在 AndroidManifestxml 里添加如下的配置信息:<receiver android:name="Your Receiver" android:enabled="true"> <intent-filter> <action android:name="cnjpushandroidintentREGISTRATION" /> <action android:name="cnjpushandroidintentMESSAGE_RECEIVED" /> <action android:name="cnjpushandroidintentNOTIFICATION_RECEIVED" /> <action android:name="cnjpushandroidintentNOTIFICATION_OPENED" /> <category android:name="You package Name" /> </intent-filter></receiver>每个 Receiver action 详细解释如下。Action - cnjpushandroidintentREGISTRATIONSDK 向 JPush Server 注册所得到的注册 ID 。一般来说,可不处理此广播信息。要深入地集成极光推送,开发者想要自己保存App用户与JPush 用户关系时,则接受此广播,取得 Registration ID 并保存与App uid 的关系到开发者自己的应用服务器上。使用极光推送提供的别名与标签功能,是更加简单轻便的绑定App用户与JPush用户的方式,请参考文档:别名与标签使用教程。Intent 参数JPushInterfaceEXTRA_REGISTRATION_IDSDK 向 JPush Server 注册所得到的注册 全局唯一的 ID ,可以通过此 ID 向对应的客户端发送消息和通知。Bundle bundle = intentgetExtras();String title = bundlegetString(JPushInterfaceEXTRA_REGISTRATION_ID);Action - cnjpushandroidintentMESSAGE_RECEIVED收到了自定义消息 Push 。SDK 对自定义消息,只是传递,不会有任何界面上的展示。如果开发者想推送自定义消息 Push,则需要在 AndroidManifestxml 里配置此 Receiver action,并且在自己写的 BroadcastReceiver 里接收处理。Intent 参数JPushInterfaceEXTRA_TITLE保存服务器推送下来的消息的标题。对应 API 消息内容的 title 字段。对应 Portal 推送消息界面上的“标题”字段(可选)Bundle bundle = intentgetExtras();String title = bundlegetString(JPushInterfaceEXTRA_TITLE);JPushInterfaceEXTRA_MESSAGE保存服务器推送下来的消息内容。对应 API 消息内容的 message 字段。对应 Portal 推送消息界面上的"消息内容”字段。 Bundle bundle = intentgetExtras();String message = bundlegetString(JPushInterfaceEXTRA_MESSAGE);JPushInterfaceEXTRA_EXTRA保存服务器推送下来的附加字段。这是个 JSON 字符串。对应 API 消息内容的 extras 字段。对应 Portal 推送消息界面上的“自定义内容”。Bundle bundle = intentgetExtras();String extras = bundlegetString(JPushInterfaceEXTRA_EXTRA);JPushInterfaceEXTRA_CONTENT_TYPE保存服务器推送下来的内容类型。对应 API 消息内容的 content_type 字段。Bundle bundle = intentgetExtras();String type = bundlegetString(JPushInterfaceEXTRA_CONTENT_TYPE);JPushInterfaceEXTRA_RICHPUSH_FILE_PATHSDK 140 以上版本支持。富媒体通消息推送下载后的文件路径和文件名。Bundle bundle = intentgetExtras();String file = bundlegetString(JPushInterfaceEXTRA_RICHPUSH_FILE_PATH);JPushInterfaceEXTRA_MSG_IDSDK 161 以上版本支持。唯一标识消息的 ID, 可用于上报统计等。Bundle bundle = intentgetExtras();String file = bundlegetString(JPushInterfaceEXTRA_MSG_ID);Action - cnjpushandroidintentNOTIFICATION_RECEIVED收到了通知 Push。如果通知的内容为空,则在通知栏上不会展示通知。但是,这个广播 Intent 还是会有。开发者可以取到通知内容外的其他信息。Intent 参数JPushInterfaceEXTRA_NOTIFICATION_TITLE保存服务器推送下来的通知的标题。对应 API 通知内容的 n_title 字段。对应 Portal 推送通知界面上的“通知标题”字段。Bundle bundle = intentgetExtras();String title = bundlegetString(JPushInterfaceEXTRA_NOTIFICATION_TITLE);JPushInterfaceEXTRA_ALERT保存服务器推送下来的通知内容。对应 API 通知内容的 n_content 字段。对应 Portal 推送通知界面上的“通知内容”字段。Bundle bundle = intentgetExtras();String content = bundlegetString(JPushInterfaceEXTRA_ALERT);JPushInterfaceEXTRA_EXTRASDK 129 以上版本支持。保存服务器推送下来的附加字段。这是个 JSON 字符串。对应 API 通知内容的 n_extras 字段。对应 Portal 推送通知界面上的“自定义内容”字段。Bundle bundle = intentgetExtras();String extras = bundlegetString(JPushInterfaceEXTRA_EXTRA);JPushInterfaceEXTRA_NOTIFICATION_IDSDK 135 以上版本支持。通知栏的Notification ID,可以用于清除NotificationBundle bundle = intentgetExtras();int notificationId = bundlegetInt(JPushInterfaceEXTRA_NOTIFICATION_ID);JPushInterfaceEXTRA_CONTENT_TYPE保存服务器推送下来的内容类型。对应 API 消息内容的 content_type 字段。 Portal 上暂时未提供输入字段。Bundle bundle = intentgetExtras();String type = bundlegetString(JPushInterfaceEXTRA_CONTENT_TYPE);JPushInterfaceEXTRA_RICHPUSH_HTML_PATHSDK 140 以上版本支持。富媒体通知推送下载的HTML的文件路径,用于展现WebView。Bundle bundle = intentgetExtras();String fileHtml = bundlegetString(JPushInterfaceEXTRA_RICHPUSH_HTML_PATH);JPushInterfaceEXTRA_RICHPUSH_HTML_RESSDK 140 以上版本支持。富媒体通知推送下载的资源的文件名,多个文件名用 “,” 分开。 与 “JPushInterfaceEXTRA_RICHPUSH_HTML_PATH” 位于同一个路径。Bundle bundle = intentgetExtras();String fileStr = bundlegetString(JPushInterfaceEXTRA_RICHPUSH_HTML_RES);String[] fileNames = fileStrspilt(",");JPushInterfaceEXTRA_MSG_IDSDK 161 以上版本支持。 唯一标识通知消息的 ID, 可用于上报统计等。Bundle bundle = intentgetExtras();String file = bundlegetString(JPushInterfaceEXTRA_MSG_ID);Action - cnjpushandroidintentNOTIFICATION_OPENED用户点击了通知。一般情况下,用户不需要配置此 receiver action。如果开发者在 AndroidManifestxml 里未配置此 receiver action,那么,SDK 会默认打开应用程序的主 Activity,相当于用户点击桌面图标的效果。如果开发者在 AndroidManifestxml 里配置了此 receiver action,那么,当用户点击通知时,SDK 不会做动作。开发者应该在自己写的 BroadcastReceiver 类里处理,比如打开某 Activity 。Intent 参数JPushInterfaceEXTRA_NOTIFICATION_TITLE保存服务器推送下来的通知的标题。对应 API 通知内容的 n_title 字段。对应 Portal 推送通知界面上的“通知标题”字段。Bundle bundle = intentgetExtras();String title = bundlegetString(JPushInterfaceEXTRA_NOTIFICATION_TITLE);JPushInterfaceEXTRA_ALERT保存服务器推送下来的通知内容。对应 API 通知内容的n_content字段。对应 Portal 推送通知界面上的“通知内容”字段。Bundle bundle = intentgetExtras();String content = bundlegetString(JPushInterfaceEXTRA_ALERT);JPushInterfaceEXTRA_EXTRASDK 129 以上版本支持。保存服务器推送下来的附加字段。这是个 JSON 字符串。对应 API 消息内容的 n_extras 字段。对应 Portal 推送通知界面上的“自定义内容”字段。Bundle bundle = intentgetExtras();String type = bundlegetString(JPushInterfaceEXTRA_EXTRA);JPushInterfaceEXTRA_NOTIFICATION_IDSDK 135 以上版本支持。通知栏的Notification ID,可以用于清除NotificationBundle bundle = intentgetExtras();int notificationId = bundlegetInt(JPushInterfaceEXTRA_NOTIFICATION_IDJPushInterfaceEXTRA_MSG_IDSDK 161 以上版本支持。唯一标识调整消息的 ID, 可用于上报统计等。Bundle bundle = intentgetExtras();String file = bundlegetString(JPushInterfaceEXTRA_MSG_ID);代码示例public void onReceive(Context context, Intent intent) { Bundle bundle = intentgetExtras(); Logd(TAG, "onReceive - " + intentgetAction()); if (JPushInterfaceACTION_REGISTRATION_IDequals(intentgetAction())) { } else if (JPushInterfaceACTION_MESSAGE_RECEIVEDequals(intentgetAction())) { Systemoutprintln("收到了自定义消息。消息内容是:" + bundlegetString(JPushInterfaceEXTRA_MESSAGE)); // 自定义消息不会展示在通知栏,完全要开发者写代码去处理 } else if (JPushInterfaceACTION_NOTIFICATION_RECEIVEDequals(intentgetAction())) { Systemoutprintln("收到了通知"); // 在这里可以做些统计,或者做些其他工作 } else if (JPushInterfaceACTION_NOTIFICATION_OPENEDequals(intentgetAction())) { Systemoutprintln("用户点击打开了通知"); // 在这里可以自己写代码去定义用户点击后的行为 Intent i = new Intent(context, TestActivityclass); //自定义打开的界面 isetFlags(IntentFLAG_ACTIVITY_NEW_TASK); contextstartActivity(i); } else { Logd(TAG, "Unhandled intent - " + intentgetAction()); } }

消息推送(Push)就是通过服务器把内容主动发送到客户端的过程。运营人员通过自己的产品或第三方工具对用户移动设备进行主动消息推送。完成推送后,消息通知会展示在移动设备的锁定屏幕及通知栏上,用户点击通知即可去往相应页面。

现在流行的消息推送实现方式,主要为长链接方式实现。其原理是客户端主动和服务器建立TCP长链接,长链接建立之后,客户端定期向服务器发送心跳包用于保持链接,当有消息要发送的时候,服务器可以直接通过这个已经建立好的长链接,将消息发送到客户端。

个推作为国内移动推送领域的早期进入者,于2010年推出个推消息推送SDK产品,十余年来持续为移动开发者提供稳定、高效、智能的消息推送服务,成功服务了人民日报、新华社、CCTV、新浪微博等在内的数十万APP客户。个推消息推送,也是运用长链接的方式实现消息推送的,其长链接稳定性高、存活好,消息送达率高。开发者通过集成个推消息推送SDK,即可简单、快捷地实现Android和iOS平台的消息推送功能,有效提高产品活跃度、增加用户留存。

如果您对个推消息推送感兴趣,欢迎前往个推开发者中心免费注册体验。

个推的合作客户

可以在Debug模式下输出的logcat中看到Device Token,也可以使用下面的方法来获取Device Token。

帮用户确定是没有替换包名导致的错误 附上二个问题的答案:device token获取的办法:String device_token = UmengRegistrargetRegistrationId(context),说明Device Token为友盟生成的用于标识设备的id,长度为44位,不能定制和修改。同一台设备上每个应用对应的Device Token不一样。

获取Device Token的代码需要放在mPushAgentenable();后面,注册成功以后调用才能获得Device Token。

如果返回值为空, 说明设备还没有注册成功, 需要等待几秒钟,同时请确保测试手机网络畅通。

关于以上类似的问题,可以试试极光推送,多种消息类型,开发者可以轻松地通过极光发送各个移动平台的系统通知,还可以在控制台编辑多种富文本展示模板; 极光还提供自定义消息的透传,客户端接到消息内容后根据自己的逻辑自由处理。

以上就是关于极光推送的自定义消息推送之后ios怎么使用全部的内容,包括:极光推送的自定义消息推送之后ios怎么使用、php 怎么做 内部的消息推送呢、极光推送第二篇:消息接收等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9691153.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存