Register gcm for chrome

江枫思渺然 提交于 2019-12-13 03:03:29

问题


I have a chrome Apps use push notification of GCM. I have a problem, when i don't login account on chrome. I can't receive registerId from GCM. I think a idea. When registerId empty, i show notification, request user login to chrome and show login page account on chrome. But because of security concerns , the chrome does not allow access to its setting from external links . How is open "chrome://settings/" from external links? Can register to gcm, If i don't want login account on chrome?

My code:

function setValue()
{
//var thongtin=$('#status').val();
 //var thongtin = document.getElementById('status').innerText;
if(registrationId == "")
{
    // Pop up a notification to show notification.
    chrome.notifications.create(getNotificationId(), {
    title: 'CLOUD MONITOR',
    iconUrl: 'gcm_128.png',
    type: 'basic',
    message: 'You must sign in account gmail on google chrome!'
    }, function() {});

    //event click to notification
    chrome.notifications.onClicked.addListener(function() {     
        window.location.href = "chrome://settings/"
    });
}
else
{
//http://mtraffic.longvan.net/device_register?regId=" +registrationId+"&device=android
//document.getElementById('webviewSendData').src = "http://192.168.64.246:8080/register?REGID=" +registrationId+"&DEVICE=desktop";
document.getElementById('webviewSendData').src = "http://mtraffic.longvan.net/device_register?regId="+registrationId+"&device=android";
//document.getElementById('webviewSendData').src = "http://192.168.64.124:8080/monitor/device_register?regId=" +registrationId+"&device=android";
//var url = "http://192.168.64.124:8080/monitor/device_register?regId=" +registrationId+"&device=android";
//httpGet(url);
//alert(thongtin);
//document.getElementById('status').innerHTML="Infomation New";
// Pop up a notification to show notification.

}
}

This code don't run.

chrome.notifications.onClicked.addListener(function() {   
        window.location.href = "chrome://settings/"
    });

I fix code as Derek 朕會功夫.

chrome.notifications.onClicked.addListener(function() {
chrome.tabs.create({url: "chrome://settings/"}); });

And receive error notify: Error in event handler for notifications.onClicked:TypeError: Can't read property 'create' of underfined.


回答1:


I'm afraid at the moment it's not possible.

Chrome Apps don't have access to tabs/windows API that can open privileged pages; that's why Derek's suggestion does not work.

In future, they may be a way to do this with chrome.browser API. See this feature request, this proposal, and please leave feedback there with your use case.



来源:https://stackoverflow.com/questions/27631326/register-gcm-for-chrome

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!