2014-10-20 2 views
1

Я избиваю голову странной проблемой, объявления из пресс-центра microsoft не являются кликами, когда приложение использует D3D/XAML-взаимодействие. НО Я вижу много игр в магазине Windows, у которых есть реклама для публики, и явно использует d3d/xaml - как заставить этих двух работать вместе?Объявление Pubcenter не доступно для контакта

Простые шаги, чтобы воспроизвести проблему: (VS2013 - со всеми последними обновлениями, pibcenter Ctrl также обновлен до последней версии)

VS2013 -> New -> Project -> (Visual C++/магазин приложения) - > DirectX и XAML приложения (Windows Phone)

(Примечание: Это Windows Phone 8.1 приложение, НЕ окна телефон 8,1 Silverlight приложение)

при создании проекта, просто пойти в DirectXPage.xaml

и отредактировать его, чтобы выглядеть следующим образом:

<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:AdTest" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:UI="using:Microsoft.Advertising.Mobile.UI" 
    x:Class="AdTest.DirectXPage" 
    mc:Ignorable="d"> 

    <SwapChainPanel x:Name="swapChainPanel"> 

     <!-- Grid definition, to place ad on bottom (may remove if no ads) --> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*"/> 
      <RowDefinition Height="50"/> 
     </Grid.RowDefinitions> 

     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 

     <TextBlock Text="Hello from XAML!" 
HorizontalAlignment="Right" 
VerticalAlignment="Top" 
FontSize="30" /> 

     <UI:AdControl Grid.Column="0" Grid.Row="1" x:Name="adBanner" AutoRefreshIntervalInSeconds="60" ApplicationId="xxxxxxxxxxx" AdUnitId="xxxxx" HorizontalAlignment="Right" Height="50" IsAutoRefreshEnabled="True" Margin="0,0,0,0" VerticalAlignment="Bottom" Width="320"/> 

    </SwapChainPanel> 

    <!-- Uncomment this if using the app bar in your phone application. 
    <Page.BottomAppBar> 
     <CommandBar> 
      <AppBarButton Icon="Play" AutomationProperties.Name="Sample Button" 
          AutomationProperties.AutomationId="SampleAppBarButton" Click="AppBarButton_Click" /> 
     </CommandBar> 
    </Page.BottomAppBar>--> 
</Page> 

заменить ххххй с реальным приложением единицей ид/и запустить образец - теперь, когда баннер появляется, попробуйте нажать на него - он не работает :/ Есть ли способ сделать его интерактивным? (он не распространяется на какой-либо другой элемент управления, он правильно вводит его, поэтому я не знаю, в чем проблема).

+0

Просто попробуйте добавить свой 'AdControl' сразу после' SwapChainPanel'. – Kulasangar

+0

Нет, это не сработает, если я удалю TextBlock (поэтому AdControl является единственным внутри SwapChainPanel, он по-прежнему не доступен) - вы пробовали, и он работает на вас? – user2441788

ответ

0

Вы решили свою проблему? Кажется, что это связано с тем, что это приложение C++, у меня также много проблем с ним. Один из способов, который я нашел в объявлении метода резьбовыми в управление:

adPubcenter->Tapped += ref new Windows::UI::Xaml::Input::TappedEventHandler(this, &OpenGLESPage::OnAdTapped); 


void OpenGLESPage::OnAdTapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e){ 

А потом

void OpenGLESPage::OnAdTapped(Platform::Object^ sender, Windows::UI::Xaml::Input::TappedRoutedEventArgs^ e){ 
    //Handle touch yourself (ie. opens a game that you have) 
    Windows::System::Launcher::LaunchUriAsync(ref new Uri("http://www.windowsphone.com/s?appid=bb8d4ce2-1853-47b6-9b0d-bb1af5a07436")); 
} 

По крайней мере, таким образом, объявление делает что-то при нажатии.