【问题标题】:Google Chrome extension and Twilio Client APIGoogle Chrome 扩展和 Twilio 客户端 API
【发布时间】:2013-11-28 14:23:59
【问题描述】:

我是一个新手,正在尝试制作一个 Chrome 扩展程序,该扩展程序利用 Twilio Client API 和 Node.js 后端从浏览器拨打电话。

我在从我的扩展程序中运行 Twilio 时遇到了一些问题,我收到了 "Twilio is not defined"

这是我的清单文件:

{
  "name": "<NAME>",
  "version": "0.0.1",
  "manifest_version": 2,
  "permissions": [
    "contextMenus",
    "http://localhost:3000/",
    "http://*.twilio.com/*",
    "https://*.twilio.com/*"
  ],
  "background": {
    "scripts": ["lib/jquery-1.7.2.min.js","lib/twilio.js","background.js"]
  }, 
  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*", "file:///*/*"],
      "css": ["css/styles.css"],
      "js": ["lib/jquery-1.7.2.min.js"]
    }
  ],
  "icons":{
    "128":"icon_128.png"
  }
}

这是我的 background.js:

console.log('Init background.js...'); 

function callNumber(info, tab) {
    alert(info.selectionText);
}

chrome.contextMenus.create ({
    "title":"%s", 
    "contexts": ["all"], 
    "onclick": callNumber
});

// get capability token
$(function() {
    $.get('http://localhost:3000/token', function(resp){
        initTwilio(resp);
    }); 
});

function initTwilio(token) {
    // init twilio
    Twilio.Device.setup(token);
}

关于如何使用 Twilio 客户端 API 的任何建议?

谢谢!

【问题讨论】:

标签: javascript jquery google-chrome google-chrome-extension twilio


【解决方案1】:

Twilio 脚本需要从 Twilio 服务器加载。它依靠它来查找库的其余部分。为了让它开心,您可以尝试以下方法:

删除清单中当前的 background 部分并将其替换为以下行:

"content_security_policy": "script-src 'self' https://static.twilio.com; object-src 'self'",
"background": { "page": "background.html" },

并向您的扩展添加一个名为 background.html 的文件,其内容如下:

<script src="lib/jquery-1.7.2.min.js"><script>
<script src="https://static.twilio.com/libs/twiliojs/1.1/twilio.min.js"><script>
<script src="background.js"><script>

更新

这将失败,因为加载程序尝试使用以 // 开头的 URL,这在 Chrome 扩展页面中无法正常工作。所以更简单的解决方法是:

  1. 回到原来的设置
  2. http://static.twilio.com/libs/twiliojs/refs/7ed9035/twilio.min.js的内容替换文件lib/twilio.js

【讨论】:

  • 我在控制台中得到了这个:Cannot GET chrome-extension://static.twilio.com/libs/twiliojs/refs/7ed9035/twilio.min.js。这是为什么呢?
  • 我需要它是 http(s)://
猜你喜欢
  • 1970-01-01
  • 2013-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-18
  • 2016-02-26
相关资源
最近更新 更多