1. 创建扩展的web资源文件
在src\chrome\browser\resources\myapi文件夹下,其中manifest.json文件的“key”的来源:通过载入一个自定义的crx插件然后在chromium的appdata下找到该插件的key,该key可能被用于计算extension-id,如果扩展无法调用接口,有可能是key不对,在src\base\base64.cc的Base64Decode函数处做检查。
manifest.json:
{
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDi4h7GFx0NvfD3EhvKNf7bAp2/U+0Be92WDRgkkOG8l+73weIDb7/UpZ831JSFxnjtOoKj7PLTYk//tYd3ZYhIdnZfPap6M6s0v8nzibCkvqCbsChg7EbuJ6Cf3l4upU+0QTPHYKswcDBkMg6oNrRj3vhWeKUEBPktBu99/S2MKwIDAQAB",
"name": "myapi_rmb999",
"version": "1.0",
"manifest_version": 2,
"description": "myapi",
"permissions": ["myapi"],
"chrome_url_overrides": {
"rmb999": "popup.html"
},
"content_security_policy": "object-src 'self'; script-src chrome://resources 'self'"
}
popup.html:
<html>
<body>
<p>Hello World</p>
<script type="text/javascript" src="test.js">
</script>
</body>
</html>
test.js:
function myapi() {
var input = {};
input.data = 'helloworld';
input.name = 'rmb999';
var strInput = JSON.stringify(input);
chrome.myapi.helloWorld((strInput), function(data){
alert('result = ' + data);
});
}
chrome.browserAction.onClicked.addListener(myapi);
myapi();
