注册gcm表示chrome

时间:2014-12-24 04:05:03

标签: javascript html5 google-chrome-extension google-chrome-app

我有一个Chrome应用程序使用GCM的推送通知。我有一个问题,当我没有在Chrome上登录帐户。我无法从GCM收到registerId。我想一个主意。当registerId为空时,我显示通知,请求用户登录chrome并在chrome上显示登录页面帐户。但由于安全问题,Chrome不允许从外部链接访问其设置。如何从外部链接打开“chrome:// settings /”?可以注册到gcm,如果我不想在Chrome上登录帐户?

我的代码:

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.

}
}

此代码无法运行。

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

我将代码修改为Derek朕会功夫。

  

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

并收到错误通知:notification.onClicked的事件处理程序出错:TypeError:无法读取未定义的属性“create”。

1 个答案:

答案 0 :(得分:0)

我现在害怕这是不可能的。

Chrome Apps无法访问可以打开特权页面的tabs / windows API;这就是为什么德里克的建议不起作用的原因。

将来,它们可能是使用chrome.browser API执行此操作的方法。请参阅this feature requestthis proposal,请在您的用例中留下反馈。