Application Insights в VS2015 Cordova Не удалось отправить телеметрию

Я использую VS2015 для разработки приложения Cordova с Application Insights.

Я следую этой статье, чтобы интегрировать AppInsights и поместить это в onDeviceReady ()

     var snippet: any = {
            config: {
                instrumentationKey: "f2c1b11a-e3ec-4d3a-b96b-xxxxxxxx"
            }
        };
        var init = new Microsoft.ApplicationInsights.Initialization(snippet);
        var appInsights = init.loadAppInsights();
        appInsights.trackPageView();

В init.loadAppInsights () все идет хорошо, но после запуска appInsights.trackPageView () я получил следующее сообщение об ошибке:

AI (Internal): NONUSRACT_OnError message:"Failed to send telemetry." props:"{message:{}}"

Я проверил, что в index.html https://dc.services.visualstudio.com находится в CSP

<meta http-equiv="Content-Security-Policy" content="default-src 'self' https://*.azurewebsites.net https://dc.services.visualstudio.com http://dc.services.visualstudio.com data: gap: https://ssl.gstatic.com 'unsafe-eval' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; media-src *">

А также доступ к домену в config.xml разрешить * URI

Может ли кто-нибудь помочь мне заставить Cordova работать с AppInsights?

Очень признателен.


person Paul    schedule 24.05.2016    source источник


Ответы (1)


Я считаю, что проблема, с которой вы сталкиваетесь, вызвана тем, что эмулятор Cordova Ripple не может выполнить междоменный запрос. Установите для параметра прокси-сервера междоменного значения значение «отключено»:

введите описание изображения здесь

В качестве альтернативы вы можете изучить другие способы отключения междоменных запросов от Ripple. Когда я изменился, я могу без проблем отправлять телеметрию в AI из приложения Cordova, как описано в статье - я сделал именно то, что вы описали, вот как я разместил файлы.

введите описание изображения здесь

person Alex Bulankou    schedule 24.05.2016
comment
Теперь он работает в Ripple Chrome. Однако, когда я развертываю приложение на устройстве Android, оно снова показывает то же сообщение об ошибке. Я исследовал какое-то время. Не могли бы вы мне намекнуть? Спасибо. - person Paul; 25.05.2016
comment
Я не уверен, почему это сработает, поскольку этот тег предназначен для навигации, а не для AJAX, но поскольку, очевидно, он работал для других, не могли бы вы добавить ‹allow-navigation href = * /›, как рекомендуется здесь: stackoverflow.com/questions/30060534/ - person Alex Bulankou; 26.05.2016