我正在尝试使用新的Chrome通知,没有什么花哨的只是尝试一个基本的工作,但我一直在
未捕获的TypeError:无法调用未定义的方法'create'
我认为它显而易见但我不确定我做错了什么,有人有什么想法吗?
提前致谢
的Javascript
var id= 0;
var opt={
type:"basic",
title:"Hello",
message:"world",
iconUrl:"Google.png"
}
function creationCallback(id) {
console.log("Succesfully created " + id + " notification");
}
function createnot()
{
chrome.notifications.create(id, opt, creationCallback);
id++;
}
清单
{
"name": "Notification API Sample",
"description": "Tests the notification API",
"manifest_version" : 2,
"version" : "0.1",
"permissions" : [
"notifications"
]
}
HTML
<html>
<head>
<script type="text/javascript" src="note.js"></script>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<input type="button" value="meh" onclick="createnot()"/>
<footer>
</footer>
</body>
</html>
答案 0 :(得分:2)
{
"name": "Notification API Sample",
"description": "Tests the notification API",
"manifest_version" : 2,
"version" : "0.1",
"permissions" : [
"notifications",
"http://*/*" // add this if your html file is a webpage not a page in extension.
],
"background": {
"scripts": ["background.js"],
"persistent": false // add this line if you use event page.
}
}
你的manifest.json需要像这样的“背景”信息。
另外,如果你的html页面是一个网页而不是扩展页面本身, 你需要给它一个许可。
var id = "0";
它可能没什么区别但是,我认为通知ID需要是一个字符串。
chrome.notifications.create(string notificationId, NotificationOptions options, function callback)
<强> +++ +++已编辑强>
的 foo.js 强> 的
$(function(){
var test = $("#test");
test.click(function () {
chrome.notifications.create(
'id1',{
type:"basic",
title:"Hello",
message:"world",
iconUrl:"Google.png"
},
function() {
}
);
});
});
的 foo.html 强> 的
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="jquery.js"></script>
<script src="options.js"></script>
</head>
<body>
<h1 id="test">This is a test.</h1>
</body>
</html>
<强>的manifest.json 强>
{
"name": "Notification API Sample",
"description": "Tests the notification API",
"manifest_version" : 2,
"version" : "0.1",
"permissions" : [
"notifications"
]
}
我认为如果html页面是扩展名,这是最简单的方法。
您需要这些文件。你甚至不需要background.js。
1.manifest.json
2.foo.html
3.foo.js