Если вы не будете вызывать завершение, ничего не произойдет, потому что вызывающий завершение не будет ждать его.
Но если вы хотите охватить все случаи, попробуйте добавить обратный вызов сбоя. Например:
func product(with id: String, _ success: @escaping (Product) -> (), failure: @escaping (Any) -> ())
Можно поместить код JavaScript от Adsense в единственной странице HTML, с которой запускается GWT. Таким образом, реклама не будет отображена в той же области как GTW, но выше/ниже кода GWT. Для рекламы, которая могла быть в порядке.
Этот пример помещает баннер выше приложения:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>www.javaoracleblog.com</title>
<script type="text/javascript" language="javascript" src="com.javaoracleblog.aggregator.nocache.js"></script>
</head>
<body>
<script type="text/javascript"..
ADsense code here
</script>
<!-- OPTIONAL: include this if you want history support -->
<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>
</body>
</html>
Чтобы указать к Google WT, что сайту Google adsense можно доверять, необходимо добавить regex, соответствие URL к - добавляет параметр командной строки в белый список.
Обратите внимание, что это, вероятно, не решит проблемы desribed в вышеупомянутой статье "Why I dumped GWT".
Согласно этому потоку на AdSense:
Короткая версия, Вы не можете использовать Adsense через Ajax, не повреждая policies/t&c's программы
Долгая версия...
Код рекламы прошел через вызов xmlhttp, не представляется, его просто рассматривают как текст (следовательно, responseText). Единственный способ выполнить js код состоит в том, чтобы использовать "responseXML" вместе с "должностным лицом ()" команда.
Например...
Если Ваш xml содержит что-то вроде:
Это - содержание из внешнего кода JavaScript файла, идет сюда
Вы присвоили бы переменную (названный page_data, например) использующий ajax_obj.responseXML, выполнили бы XML через синтаксический анализатор и работали бы
должностное лицо (js переменная или строка от XML здесь);
Едва ли полезный с точки зрения Adsense, но это - то, как она сделана.
Также стоит упомянуть, Почему я вывел GWT:
Другой проблемой были мои adsense баннеры. Так как у меня не было большого количества содержания на странице, баннеры были иногда вне темы. Еще большая проблема состояла в том, что баннеры остались такими же, когда люди искали различные ключевые слова (так как обновление ajax не инициировало обновление adsense). Я решил это путем выполнения поиска с обновлением страницы вместо вызова ajax. ajax часть сайта была ограничена сортировкой, фасетированием, i18n и отображение подсказок.
Вы могли бы проверить интервью, которое я сделал с InfoQ. Это включает демонстрационную главу из моей книги, и это, оказывается, находится на SEO.
Это не тривиально, но я думаю, что решения в главе позволяют GWT работать приятно в среде, где SEO важна. Основное решение состоит в том, чтобы реализовать что-то, что я называю 'начальной загрузкой'. Это означает, что Ваши страницы берут информацию, которая обычно сталкивалась бы в запросах GWT-RPC и сериализировала бы их в страницу. Виджет GWT затем загружает эту информацию без запроса RPC. В то время как Ваша страница сериализирует информацию в JavaScript, легко также записать <noscript> в страницу, которая может использоваться для SEO.
Смотрите на PDF, включенный здесь: InfoQ GWT это входит во все подробности. Целый демонстрационный проект здесь: код Google с источником на GitHub.
Бот AdSense Google проверяет Вашу страницу для определения что рекламе служить. Поэтому Вы не должны помещать AdSense на страницах с главным образом динамическим контентом. Это не будет работать хорошо.
Возможно, необходимо ли изучить другие программы рекламы?
Если вы действительно хотите, чтобы AdSense был «внутри» GWT, я бы использовал виджет Frame. По сути, виджет Frame генерирует
И вот реальное решение:
Вы должны поместить
<ui:style>
.sponsor {
border: 0em;
width: 20em;
height: 6em;
float: right;
display: inline;
}
</ui:style>
<g:HTMLPanel>
<g:Frame ui:field="sponsor" url="issue/extern/Google-AdSense.html" styleName="{style.sponsor}"/>
</g:HTMLPanel>
в свой файл .ui.xml , а логику в соответствующий файл .java :
@UiField
Frame sponsor;
Также вам следует поместить фактический код Google AdSense (материал