Я пытаюсь отправить две части данных из внешнего веб-приложения в OpenVBX.
calltonum:(phone number in format +12345678902)
callfromnum:(phone number in format +12345678902)
Как только данные в приложении, я пытаюсь использовать эту функцию:
http://www.openvbx.org/docs/browserphone/api/
OpenVBX.clientDial({
'to': calltonum,
'callerid': callfromnum
});
Я проверил, что эта функция Javascript работает с плагином, но пока не удалось успешно разместить данные в плагине. Первоначально я боялся, что столкнусь с проблемами аутентификации, но быстро обнаружил, что у меня уже есть открытый сеанс и я отправляю данные непосредственно в функцию внутри пользовательского контроллера с классом, который расширяет User_Controller
… Он получает данные поста и просто передает их на просмотр.
Сейчас моя проблема в том, что когда я загружаю представление, оно прекрасно заполняется всеми CSS и Javascript, а также возможностью просмотра данных на экране, но Затем страница запрашивает «/» для загрузки, которая перенаправляет браузер в / messages / inbox. Я также получаю сообщение об ошибке js:
Uncaught ReferenceError: $ is not defined(anonymous function) @ dosomethingplease:116
При попытке использовать API-интерфейс браузера заставляет меня поверить, что jquery не был загружен в шаблон.
Вот код, который у меня сейчас есть:
dialbrowser.php создан в / controllers
<?php
class dialbrowserException extends Exception {}
class dialbrowser extends User_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
return $this->dosomethingplease();
}
public function dosomethingplease()
{
$data = $this->init_view_data();
$this->template->add_js('assets/j/plugins/call-and-sms-dialogs.js');
$this->template->add_js('assets/j/frameworks/jquery-1.6.2.min.js');
$data = array('calltonum' => $this->input->post('calltonum'), 'callfromnum' => $this->input->post('callfromnum'));
$this->respond('title','dialnow', $data);
}
}
?>
dialnow.php создан в / views
<div class="vbx-content-main">
<div class="vbx-content-menu vbx-content-menu-top">
<h2 class="vbx-content-heading">Test-a-roo</h2>
</div><!-- .vbx-content-menu -->
<div class="vbx-content-container">
<div class="vbx-content-section">
<div class="vbx-form">
<h3>Receipt of Number passed:</h3>
<div>
And here we made it the whole way.... didnt think we could do it huh?
<?php
echo "lets do this for sanity's sake... to: ".$calltonum." and from: ".$callfromnum." ...see no issues with the data!";
$html = "<script> $('document').ready(function(){OpenVBX.clientDial({'to': '".$calltonum."', 'callerid': '".$callfromnum."'});}); </script>";
echo $html;
?>
</div>
</div>
</div><!-- .vbx-content-section -->
</div><!-- .vbx-content-container -->
</div><!-- .vbx-content-main -->
и в настоящее время я могу успешно публиковать в / dialbrowser / index или / dialbrowser / dosomethingplease, и данные заполняются в представлении.
Что я не понимаю, так это почему это перенаправление? А также, так как я расширяю User_Controller
не должны ли все критические jquery / javascript уже быть успешно загружены?
ОБНОВИТЬ: Я изменился $route['dialbrowser'] = "dialbrowser";
в /config/routes.php
, Он не перенаправляет на уровне контроллера сейчас! Теперь я вижу, что левого меню там нет, кнопка вызова не работает, а предыдущая ошибка javascript все еще сохраняется.
Это то, что вы ищете? Существует концептуальный плагин для добавления клика для вызова Openvbx, но вам нужно изменить несколько строк, чтобы отключить защиту при публикации в плагинах без авторизации. https://github.com/twilio/OpenVBX/wiki/Plugin-Click-to-Flow
Каким-то образом готовый документ не работает на странице плагина. Тебе стоит попробовать window.onload вместо $ ( ‘Документ’). Готов
Таким образом, строка будет:
$html = "<script> window.onload=function(){OpenVBX.clientDial({'to': '".$calltonum."', 'callerid': '".$callfromnum."'});}; </script>";