Windows Phone 向けアプリの開発メモブログ

ページ遷移

Windows Phone8のページの遷移についてやってみました。

 

1.新しいページ(xaml)の追加

 

Solution Explorerのウィンドウで、プロジェクトを選択し、
右クリックして、[Add] – [New Item]で新規ページを追加するダイアログを開きます。

 

solution_explorer

 

 

任意の名前を設定し、画面(xaml)を追加します。

とりあえず、Page1.xamlにしました。

 

newpage

 

 

 

2.ボタンをクリックした時に新しいページに遷移するコードの追加

 

以下のコードで遷移するページを指定して呼び出します。

 

private void btnCall_Click(object sender, RoutedEventArgs e)
{
    NavigationService.Navigate(new Uri("/Page1.xaml", UriKind.Relative));
}

 

 

これだけでページ遷移ができました。
意外と簡単ですね。
 


ブラウザを起動する

アプリ内部からブラウザを起動してWebページを開く操作についてです。
 
 
ボタンをクリックしたら、このブログのWebサイトを開くコードを書いてみました。
 
WebBrowserTaskを使います。
 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using Microsoft.Phone.Tasks;
using PhoneApp1.Resources;

namespace PhoneApp1
{
    public partial class MainPage : PhoneApplicationPage
    {
        // Constructor
        public MainPage()
        {
            InitializeComponent();

        }

        private void btnTest_Click(object sender, RoutedEventArgs e)
        {
            string url = "http://windowsphone-blog.smartphone-app.net/";
            WebBrowserTask browserTask = new WebBrowserTask();
            browserTask.Uri = new Uri(url, UriKind.Absolute);
            browserTask.Show();
        }

    }
}

 

usingの定義を含め、5行のコード追加でできました。
意外と簡単なのは嬉しいですね!!
 
web
 
 
ただ、実機で気になる動きが……。
 
ブラウザのマークが「更新」のとき、ハードウェアキーの「戻る」を押しても呼び出し元のアプリに戻らない挙動が確認されました。

updatemark
 
エミュレータでは、正常に戻れます。
少し気味の悪い現象ですね(^^;;
 


デバッグログの出力

デバッグに欠かせないのがエラーログの出力です。

基本的なことですが、ログの出力方法についてのメモです。

 

1.ファイルの頭に定義

using System.Diagnostics;

 

2.任意の文字列のログ出力を記述

Debug.WriteLine("デバッグログを出力");

 

3.Outputウィンドウの表示

もし、画面の下部などにOutputウィンドウが表示されていない場合は、メニューバーの

DEBUG > Windows > Output から選択してウィンドウを表示させます。

 

output

 

 

 

すると、Outputウィンドウでデバッグログの出力を確認できます。

 

outputwin

 

 


Windows Phone 8の実機でアプリを動かしてみる

せっかくなので、実機のLumia620(Windows Phone 8)でアプリを動かしてみようと思いました。

 

端末をUSBで接続し、ターゲットを「Device」に変更します。

 

001

 

 

 

でも、実行するとエラーに……。

002

 

There ware deployment errors. Continue?

 

 

Yesにすると、さらにエラーがでました。

003

Failed to connect to device as it is pin locked.

 

どうやら実機がロックされていてデバッグできないようです。

 

ロックを解除するために、スタートメニューから登録プログラムを起動します。

プログラム > Windows Phone SDK 8.0 > Windows Phone Developer Registration

 

アプリはこんな感じです。

端末をつないだままの状態で、登録します。

004

 

 

そして、サインインして登録します。

005

 

 

この時、端末がスリープ状態だとエラーがでました。

スリープを解除してディスプレイに明かりがついている状態で再度試すと、うまくいきました。

 

006

 

ステータスがCongratulations! You have successfully unlocked your Windows Phoneと表示された成功のようです。

 

再度実行すると、端末にアプリが転送されました。

 

写真 2013-08-17 13 40 07

 

 

とりあえず実機に転送まではできました(^^)/

 


Windows Phone SDKをインストールしてみた

Windows Phoneの開発に必要なSDKをダウンロードしてみました。

 

SDKダウンロード画面

ダウンロード ページ:Windows Phone SDK

 

 

もともとVisual Studioが入っていないかったせいか、インストールにかなり時間がかかりました。

 

インストール画面

 

そして、PC再起動を経て、ようやくVisual Studio Express 2012 for Windows Phoneが起動。

 

VS起動画面

 

 

昔仕事でVisual Studio 2008くらいまで使ったことはあったのですが、ずいぶん画面が変わっている印象です。

 

せっかくなので、Windows Phone Appの新規プロジェクトを作成し、エミュレータを起動してみました。

 

エミュレータ初起動

 

空のプロジェクトとはいえ、こんなに簡単にエミュで動かせるんですね。

結構感動しました(^^)/