Пошаговое руководство по обработке ошибок JavaScript
Предупреждение
По состоянию на 1 июня 2020 г. платформа Монетизации Microsoft Ad для приложений Windows UWP будет закрыта. Подробнее
В этом пошаговом руководстве показано, как перехватывать ошибки, связанные с рекламой, в приложении JavaScript. В этом пошаговом руководстве для отображения баннерной рекламы используется AdControl , но общие понятия в нем также применяются к промежуточным объявлениям и собственным объявлениям.
В этих примерах предполагается, что у вас есть приложение JavaScript, содержащее AdControl. Пошаговые инструкции по добавлению AdControl в приложение см. в статье AdControl в HTML 5 и JavaScript. Полный пример проекта, демонстрирующий добавление рекламных баннеров в приложение JavaScript/HTML, см. в примерах рекламы на сайте GitHub.
- В файле default.html добавьте значение для события onErrorOccurred , в котором определяются параметры win-data в div для AdControl. Найдите следующий код в файле default.html.
После атрибута adUnitId добавьте значение для события onErrorOccurred .<div id="myAd" style="position: absolute; top: 53px; left: 0px; width: 300px; height: 250px; z-index: 1" data-win-control="MicrosoftNSJS.Advertising.AdControl" data-win-options="{applicationId: '00001111-aaaa-2222-bbbb-3333cccc4444', adUnitId: 'test'}"> </div>
<div id="myAd" style="position: absolute; top: 53px; left: 0px; width: 300px; height: 250px; z-index: 1" data-win-control="MicrosoftNSJS.Advertising.AdControl" data-win-options="{applicationId: '00001111-aaaa-2222-bbbb-3333cccc4444', adUnitId: 'test', onErrorOccurred: errorLogger}">
Создайте div, который будет отображать текст, чтобы увидеть создаваемые сообщения. Для этого добавьте следующий код после div для myAd.
<div style="position:absolute; width:100%; height:130px; top:300px; left:0px"> <b>Ad Events</b><br /> <div id="adEvents" style="width:100%; height:110px; overflow:auto"></div> </div>
Создайте AdControl, который активирует событие ошибки. В приложении может быть только один идентификатор приложения для всех объектов AdControl . Таким образом, при создании дополнительной с другим идентификатором приложения возникает ошибка во время выполнения. Для этого после добавленных предыдущих разделов div добавьте следующий код в текст страницы default.html.
<!-- Because only one applicationId can be used, the following ad control will fire an error event. --> <div id="liveAd" style="position: absolute; top:500px; left:0px; width:480px; height:80px" data-win-control="MicrosoftNSJS.Advertising.AdControl" data-win-options="{applicationId: '00000000-0000-0000-0000-000000000000', adUnitId: 'test', onErrorOccurred: errorLogger }" > </div>
В файле default.js проекта после функции инициализации по умолчанию вы добавите обработчик событий для errorLogger. Прокрутите страницу до конца файла и после последнего запятой двоеточия будет помещен следующий код.
WinJS.Utilities.markSupportedForProcessing( window.errorLogger = function (sender, evt) { adEvents.innerHTML = (new Date()).toLocaleTimeString() + ": " + sender.element.id + " error: " + evt.errorMessage + " error code: " + evt.errorCode + "<br>" + adEvents.innerHTML; console.log("errorhandler hit. \n"); });
Создайте и запустите файл. Вы увидите исходную рекламу из примера приложения, созданного ранее, и текст в этой рекламе, описывающей ошибку. Вы не увидите объявление с идентификатором liveAd.