使用GCM打开Chrome Web App

时间:2015-09-28 22:05:24

标签: google-cloud-messaging web-push chrome-gcm push-api

我可以使用GCM向Chrome Web App发送消息。我正在使用http帖子:https://android.googleapis.com/gcm/send 发送registrationid,applicationid和senderid值。该消息在我的屏幕上显示为Chrome通知。我的问题是 - 是否有可用于启动Chrome Web App的命令或GCM事件/功能?谷歌浏览器设置为在后台运行。

这是我的消息事件的GCM侦听器:

chrome.gcm.onMessage.addListener(messageReceived);

调用messageReceived函数,在此函数中,我在屏幕上显示消息,弹出通知,然后打开/创建窗口:



chrome.notifications.create(getNotificationId(), {
    title: 'GCM Message',
    iconUrl: 'gcm_128.png',
    type: 'basic',
    message: messageString
  }, function() {});
  
  // Center window on screen.
  var screenWidth = screen.availWidth;
  var screenHeight = screen.availHeight;
  var width = 500;
  var height = 300;
  chrome.app.window.create('register.html', {
    id: "helloWorldID",
    outerBounds: {
      width: width,
      height: height,
      left: Math.round((screenWidth-width)/2),
      top: Math.round((screenHeight-height)/2)
    }
  });
}




2 个答案:

答案 0 :(得分:1)

您无法直接从接收推送消息的代码启动chrome。但是,点击通知后,您可以使用http://www.w3.org/TR/service-workers/#client-focus查看是否已打开窗口,或http://www.w3.org/TR/service-workers/#client-navigate打开新窗口。

https://tests.peter.sh/notification-generator/是一个很好的示例网站,您可以在其中使用不同的选项。

答案 1 :(得分:0)

这是我的消息事件的GCM侦听器: chrome.gcm.onMessage.addListener(的messageReceived);

它调用messageReceived函数,在这个函数中,我在屏幕上显示消息,弹出通知,然后打开/创建窗口:

chrome.notifications.create(getNotificationId(), {
    title: 'GCM Message',
    iconUrl: 'gcm_128.png',
    type: 'basic',
    message: messageString
  }, function() {});
  
  // Center window on screen.
  var screenWidth = screen.availWidth;
  var screenHeight = screen.availHeight;
  var width = 500;
  var height = 300;
  chrome.app.window.create('register.html', {
    id: "helloWorldID",
    outerBounds: {
      width: width,
      height: height,
      left: Math.round((screenWidth-width)/2),
      top: Math.round((screenHeight-height)/2)
    }
  });
}