4

Chrome のバージョンは 33.0.1750.154 m です。

http://developer.chrome.com/extensions/alarms#method-clearのドキュメントによると、clear メソッドのシグネチャは chrome.alarms.clear(string name, function callback) です。

まだ開発中の拡張機能にアラームがあります。

chrome.alarms.get('refreshForNotification', function(alarm){
    console.log('>>>' + JSON.stringify(alarm));
});
>>>{"name":"refreshForNotification","periodInMinutes":2,"scheduledTime":1395892890429.581} 

さて、このアラームをクリアしようとすると:

chrome.alarms.clear('refreshForNotification', function(wasCleared){
    console.log('>>> wasCleared: ' + wasCleared);
});

以下のエラーが表示されます。

Error: Invocation of form alarms.clear(string, function) doesn't match definition alarms.clear(optional string name)
 message: "Invocation of form alarms.clear(string, function) doesn't match definition alarms.clear(optional string name)"

誰かがここで何がうまくいかないのかを教えてくれますか? ドキュメントによると、アラーム API は chrome 22 から安定しています。コードが間違っていない場合は、ドキュメントが古いか、ドキュメントが新しすぎて、Chrome での現在の動作が将来変更される可能性があります。

ヒント/ヘルプは役に立ちます。

ありがとう

4

2 に答える 2

3

のオプションのコールバックは、chrome.alarms.clear先週http://crrev.com/258526 (Chrome 35.0.1903.0+) に追加されました。オンライン ドキュメントには、安定版ではなく、最新 (dev) バージョンで利用可能な機能が示されています。

Chrome 35 は現在デベロッパー チャンネルで利用できるので、この機能を本当に使いたい場合は、ここから Chrome をインストールできます。

于 2014-03-29T21:49:00.370 に答える
0

これは、35.0.1905.3 で問題なく動作します。

マニフェスト.json

{
  "name": "22692926 Example",
  "description": "alarms",
  "version": "1.0",
  "manifest_version": 2,
  "permissions": ["alarms"],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  }
}

background.js

var NAME = "foo";
var alarmInfo = {
  'delayInMinutes': 1
};

chrome.alarms.create(NAME, alarmInfo);
chrome.alarms.get(NAME, function(a) { console.log(a); });
chrome.alarms.clear(NAME, function(wasCleared) { console.log(wasCleared); });

出力

Object {name: "foo", ...}
true

これがあなたの質問に直接答えないことはわかっていますが、おそらくこのコードを正確にコピーしてテスト拡張機能を作成できます。それが機能する場合は、それを自分のものと比較して、何が違うのかを理解できます。

于 2014-03-28T19:18:02.020 に答える