Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.08.2008(UTC) Сообщений: 204 Сказал «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Здравствуйте! Используем в своем проекте КриптоПро ЭЦП Browser plug-in. Реализация на promise. Все работает и все хорошо, но: Каждый день начинается в того, что вылетает ошибка в функции check_plugin_working(): Код:
Uncaught ReferenceError: cpcsp_chrome_nmcades is not defined(anonymous function) @ cadesplugin_api.js:256
eds.js:20 TypeError: Cannot read property 'CreateObjectAsync' of undefined(…)continuer @ eds.js:20spawn @ eds.js:34Crypto.getCertificatesFromStore @ eds.js:74Crypto.getNonExpiredCertificatesFromStore @ eds.js:153Widget.interface.getCertificates @ controller.js:166Widget.interface.init @ controller.js:211(anonymous function) @ knockout.bindings.js:69i.execCb @ require.js:29Z.check @ require.js:18(anonymous function) @ require.js:23(anonymous function) @ require.js:8(anonymous function) @ require.js:23v @ require.js:7Z.emit @ require.js:23Z.check @ require.js:19Z.enable @ require.js:23Z.init @ require.js:17(anonymous function) @ require.js:21(anonymous function) @ require.js:8(anonymous function) @ require.bundles.js:12i.execCb @ require.js:29Z.check @ require.js:18(anonymous function) @ require.js:23(anonymous function) @ require.js:8(anonymous function) @ require.js:23v @ require.js:7Z.emit @ require.js:23Z.check @ require.js:19(anonymous function) @ require.js:23(anonymous function) @ require.js:8(anonymous function) @ require.js:23v @ require.js:7Z.emit @ require.js:23Z.check @ require.js:19Z.enable @ require.js:23Z.init @ require.js:17(anonymous function) @ require.js:21(anonymous function) @ require.js:8(anonymous function) @ require.bundles.js:12i.execCb @ require.js:29Z.check @ require.js:18(anonymous function) @ require.js:23(anonymous function) @ require.js:8(anonymous function) @ require.js:23v @ require.js:7Z.emit @ require.js:23Z.check @ require.js:19Z.enable @ require.js:23Z.init @ require.js:17E @ require.js:14i.completeLoad @ require.js:28i.onScriptLoad @ require.js:29
После F5 проблема исчезает и больше не появляется. Однако на следующий день все повторяется вновь. Версия плагина: 2.0.12245 Версия CSP: 3.9.8339 CryptoPro Extension for CAdES Browser Plug-in 1.0.12 Browser: Google Chrome (версия на момент теста Версия 46.0.2490.80 m) На других версиях КриптоПро ситуация аналогичная. Ошибка проявляется и на Linux и на Windows. Подскажите пожалуйста куда копать и в чем может быть проблема?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
|
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.08.2008(UTC) Сообщений: 204 Сказал «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Код:/**
* Создание CADES объекта в целях унификации интерфейса всегда отдает Promise.
* @param name
* @returns {Promise}
*/
createObject: function (name) {
if (cadesplugin.CreateObjectAsync) {
return cadesplugin.CreateObjectAsync(name);
} else {
return new Promise(function (resolve, reject) {
try {
resolve(cadesplugin.CreateObject(name));
} catch (error) {
reject(error);
}
});
}
},
На страницу подключается следующим образом: Код:<script type="text/javascript" src="{{ asset('bundles/diflowcore/libs/es6-promise.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/diflowcore/libs/browser-polyfill.min.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/diflowcore/libs/cadesplugin_api.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/diflowcore/config/require.config.js') }}"></script>
<script type="text/javascript" src="{{ asset('bundles/diflowcore/libs/require.js') }}" data-main="{{ asset('bundles/diflowcore/app/' ~ app.environment ~ '/core/init.core.js') }}"></script>
Т.е. сначала грузится plugin, потом уже require js и только потом с помощью require.js уже начинается подгрузка ядра и модулей системы, которые используют cades plugin На демо страницу зашел, все заработало с первого раза.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 24.11.2009(UTC) Сообщений: 965 Откуда: Crypto-Pro
Сказал(а) «Спасибо»: 3 раз Поблагодарили: 174 раз в 152 постах
|
Посмотрите на демостранице есть код который перед использованием проверяет что плагин уже загружен. Включение файла в определенном порядке не всегда помогает. Т.к. cadesplugin_api.js динамически подключает другие файлы из расширения. Выглядит примерно так: Код: cadesplugin.then(function () {
//App Code
},
function(error) {
document.getElementById('PluginEnabledImg').setAttribute("src", "Img/red_dot.png");
document.getElementById('PlugInEnabledTxt').innerHTML = error;
}
);
После того как promise cadesplugin отрезолвился, можно использовать вызовы из плагина. Отредактировано пользователем 12 ноября 2015 г. 15:23:27(UTC)
| Причина: Не указана |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close