如何实现收到消息的同时收到一个 URL


(小康) #1

我是用的bex5平台,有没有方法可以实现收到消息的同时收到一个url呀,我现在是将url拼接到message中,到前台接收的时候存在一个问题,只要消息返回就弹出message,怎么不让他弹出呀,或者有没有方法将url单独出来到前台接受呀?

JPushInstance.prototype.onOpenNotification = function(event) {//表示点击通知内容时触发的事件,可以根据点击的内容,执行不同的逻辑,比如跳转到指定页面
		var alertContent;
		var message;
		if (device.platform == "Android") {
			alertContent = window.plugins.jPushPlugin.openNotification.alert;
//			alertContent = window.plugins.jPushPlugin.openNotification;
			alert("33"+event.plugins.jPushPlugin.openNotification);
			var sub = alertContent.split("审核");
			message = sub[0]+"审核";
			var Processurl = sub[1];
			var url = require.toUrl(Processurl);
			justep.Shell.showPage({url : url});

		} else {
			alertContent = event.aps.alert;
		}
		window.plugins.jPushPlugin.setApplicationIconBadgeNumber(0);
		
		justep.Util.hint(message);
	};

使用设备id推送没有问题,设置别名出错
#2

传自定义消息内容的阅读本帖


(小康) #3

前台js发送了url

Model.prototype.sendOrderPushMessage = function(message,url, alias) {
		try {
			Baas.sendRequest({
				"method" : "post",
				"url" : "/jpush/jpush",
				"action" : "push",
				"params" : {
					message : message,
					url : url,
					alias : alias
				}
			});
		} catch (e) {
			justep.Util.hint(e.message);
		}
	};
后台.setNotification(Notification.android(message, "有工单需要您审核", map)).build();
	public static ScheduleResult sendPushMessage(String registrationId, String key, String secret, String message,String url) throws APIConnectionException, APIRequestException {
		Map<String, String> map = new HashMap<String, String>();
		map.put("url", url);
		try {
			ClientConfig config = ClientConfig.getInstance();
			jpushClient = new JPushClient(secret, key, 3, null, config);
			PushPayload payload = PushPayload.newBuilder().setPlatform(Platform.android())
					.setAudience(Audience.registrationId(registrationId))
					.setNotification(Notification.android(message, "有工单需要您审核", map)).build();
			payload.resetOptionsTimeToLive(86400);
			payload.resetOptionsApnsProduction(apnsProduction);
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			Calendar nowTime = Calendar.getInstance();
			nowTime.add(Calendar.SECOND, 10);
			String scheduleTime = sdf.format(nowTime.getTime());
			ScheduleResult result = jpushClient.createSingleSchedule(UUID.randomUUID().toString().replaceAll("-", ""), scheduleTime, payload);
			System.out.println(result.toString());
			return result;
		} catch (Exception ex) {
			System.err.println(ex.getMessage());
			return null;
		}
	}

我在收到推送消息后,点击事件

JPushInstance.prototype.onOpenNotification = function(event) {//表示点击通知内容时触发的事件,可以根据点击的内容,执行不同的逻辑,比如跳转到指定页面
		var alertContent;
//		var message;
		 var openUrl, obj = 'cn.jpush.android.EXTRA';
		if (device.platform == "Android") {
			 var extra = window.plugins.jPushPlugin.openNotification.extras[obj];
             openUrl =extra.url;
             alert(openUrl);
             var url = require.toUrl(openUrl);
 			 justep.Shell.showPage({url : url});

为什么我在点击的时候如果没有将用户注销可以跳转到指定页面,如果在没有收到消息的时候退出应用,进来会收到推送的消息,但是点击不跳转,请问这个是怎么回事?


#4

你这是用的什么插件实现的前端?

退出应用后再点击消息不跳转是不跳转到具体页面,只到首页,还是点击没有反应了?


(小康) #5

前端使用的require(“cordova!cn.jpush.phonegap.JPushPlugin”);这个插件
退出应用后点击收到的通知没有反应,也不执行onOpenNotification 函数中的alert,
是不是我使用的附加字段Extra对此有什么影响呢?


#6

提供一下你测试的[quote=“lmk, post:5, topic:28220”]
退出应用后点击收到的通知没有反应
[/quote]

这个操作得到的客户端日志信息。


(小康) #7

我看了日志,里面没有这块的信息,是不是退出APP后,点击推送的消息不再触发onOpenNotification 事件了?


(Josh Lipan) #8

会拉起应用吗?


(小康) #9

怎么拉起应用呀,我是退出后重新登录点击推送的消息,但是不会触发onOpenNotification 事件


(小康) #10

还是我需要在关掉app在打开的过程中在重新拉起应用,这个要在哪里实现,还是在onOpenNotification 事件点击的时候拉起应用呢?


(Josh Lipan) #11

插件处理了点击通知栏会自动拉起应用,收不到onOpenNotification情况下是否能成功拉起应用?