1

リッチ通知を作成し、画像に外部 iconUrl を使用していますが、失敗します

var options = {
        type: "basic",
        title: title +  ' - ' + timestamp,
        message: lineItem,
        iconUrl: 'http://example.com/asgsdg.png'
      }

chrome.notifications.create((id++).toString(), options, function() {});

エラー: notifications.create: 指定されたすべてのイメージをダウンロードできません。

私の拡張機能については、CSP で次のようにしています。

"content_security_policy": "image-src 'self' http://example.com/*; object-src 'self'; script-src 'self'"

標準通知に適しています

window.webkitNotifications.createNotification(..., 'http://example.com/image.png',...);

画像アイコンが機能しないリッチ通知で間違っているのは何ですか?

4

3 に答える 3

2

これはChrome 52でうまくいきました:

マニフェスト.json

"permissions":[
  "https://avatars.githubusercontent.com/*"
]

次に、次の URL が機能しました。

chrome.notifications.create({
  title: 'Hey',
  message: 'Hello',
  iconUrl: 'https://avatars.githubusercontent.com/u/1407390?'
})

ここに画像の説明を入力

于 2016-08-08T11:13:25.457 に答える
2

CSP にタイプミスがあります: image-src は img-src である必要があります。次に、URL のワイルドカードを削除する必要があります。したがって、CSP は次のように読む必要があります。

"content_security_policy": "img-src 'self' http://example.com/; object-src 'self'; script-src 'self'"

または、 chrome.experimental.notification (Rich notifications) および外部 URLで説明されている回避策を使用できます。

var options = {
    type: "basic",
    title: title +  ' - ' + timestamp,
    message: lineItem
  }

var xhr = new XMLHttpRequest();
xhr.open("GET", "http://example.com/asgsdg.png");
xhr.responseType = "blob";
xhr.onload = function(){
    var blob = this.response;
    options.iconUrl = window.URL.createObjectURL(blob);
    chrome.notifications.create((id++).toString(), options, function() {});
};
xhr.send(null);

詳細については、Google Chrome 拡張機能のドキュメント ( http://developer.chrome.com/apps/app_external.html#cross-origin ) を参照してください。

于 2013-08-19T23:58:22.867 に答える