アプリの同期ファイルを保存するには

RoamingSetting WindowsRuntimeでは同じアプリなら設定データを異なるデバイス間で同期することができます。 ただし、データ同期速度はそこまで早くありません。 ユニバーサルアプリの場合、アプリのストアへの関連付けを行った場合、WindowsアプリとWindowsPhoneアプリ間でデータ同期が行われます。   ファイル保存する場合 RoamingFolder内にファイルを作って保存します。 string fileName=”file.txt”; string value=”hoge”; StorageFolder folder = ApplicationData.Current.RoamingFolder; StorageFile file = await folder.CreateFileAsync(fileName, CreationCollisionOption.ReplaceExisting); await FileIO.WriteTextAsync(file, value);   ファイルを復元する場合 こちらも同様に、RoamingFolder内を調べ、ファイルが存在すれば復元を行います。 string fileName=”file.txt”; StorageFolder folder = ApplicationData.Current.RoamingFolder; if ((await folder.GetFilesAsync()).Where(q => q.Name == fileName).Any()) { StorageFile file = await folder.GetFileAsync(fileName); return await FileIO.ReadTextAsync(file); } else { return null; }…

アプリの同期設定を保存するには

RoamingSetting WindowsRuntimeでは同じアプリなら設定データを異なるデバイス間で同期することができます。 ただし、データ同期速度はそこまで早くありません。 ユニバーサルアプリの場合、アプリのストアへの関連付けを行った場合、WindowsアプリとWindowsPhoneアプリ間でデータ同期が行われます。   データ保存 RoamingSettingコンテナーに設定データを入れることでデータが同期されます。   ApplicationDataContainer container = ApplicationData.Current.RoamingSettings; container.Values[“score”] = 60;   データ復元 RoamingSettingコンテナーの設定データを読み込むことでデータが復元されます。 ApplicationDataContainer container = ApplicationData.Current.RoamingSettings; string score = container.Values[“score”].ToString();   データがあるかどうか確認する データがないのに復元しようとするとキーがないと例外が発生します。 必ず復元時にはデータがあるか確認しましょう。 ApplicationDataContainer container = ApplicationData.Current.RoamingSettings; if (container.Values.ContainsKey(“score”)) { string score = container.Values[“score”].ToString(); MessageDialog dialog = new MessageDialog(score); await dialog.ShowAsync(); }   データ同期できる最大サイズを取得する RoamingデータはOneDriveを介して同期されるのでそのサイズにも限界があります。 最大データサイズはRoamingStorageQuotaで取得できます ulong size=ApplicationData.Current.RoamingStorageQuota;…

Postデータを取得するには

Postデータ 複数のWebページ間でのデータのやりとりの方法の一つとして、HttpPostというものがあります。 PostはHttpRequestデータの中にデータを埋め込むことができ、Requestを受けとったWebページはPostデータを取り出してページに反映することができます。   Postデータを送信する Postデータを送信するにはHTMLのformタグを使って行います。 formタグのaction属性に遷移したいページのアドレス、method属性にpostを指定します。 <form action=”~/post.cshtml” method=”post”>   formタグ内には、postデータとして送信したいデータをユーザーから入力してもらう形式にします。 そのために、inputタグを用いて入力コントロールをつくります。 type属性には入力の種類、name属性にはpostデータのキー、valueにはpostデータの値を設定します。 <input type=”text” name=”name” />   radiobuttonの場合、選択させたいボタンを同じnameにすると対応するvalue値が送信されます。 男<input type=”radio” name=”sex” value=”man” /> 女<input type=”radio” name=”sex” value=”woman” />   全体のコードはこのようになります。 <!DOCTYPE html> <html> <head> <title>テストページ</title> </head> <body> <form action=”~/post.cshtml” method=”post”> <p>名前</p> <input type=”text” name=”name” /> <p>性別</p> 男<input type=”radio” name=”sex” value=”man” /> 女<input type=”radio”…

ページ内でC#のコードを実行する

Razor構文 ASP.netではページ内にC#のコードを埋め込むことでHTMLページ内でC#と.netFrameworkの強力なパワーを発揮することができます。   このようなcshtmlページをつくります。 @{ string message = “Hello,World!”; } <!DOCTYPE html> <html> <head> <title>テストページ</title> </head> <body> <h1>@message</h1> </body> </html> 実行してみるとこうなります。 @以降に記述された文はC#として扱われます。 このような記法をRazor構文と呼びます。   Razor構文では、わりとどこにC#のコードをいれても大丈夫です。 [ しかし、変数などを使用するときは必ず使用する前に宣言をしないとコンパイルエラーが起こってしまいます。 コンパイルエラーになる場合     もちろんC#なので.netFrameworkのクラスをたたいたり、四則演算なども可能です @{ DateTime time = DateTime.Now; int nextDay = time.Day + 1; } <!DOCTYPE html> <html> <head> <title>テストページ</title> </head> <body> <p>次の日は</p> <h1>@nextDay</h1> </body> </html>  …

位置情報を利用するには

位置情報 GPSセンサーが付いているデバイスはGPSから、ついていないデバイスはIPアドレスなどから現在の位置情報を取得することができます。 位置情報は latitude – 緯度 longitude – 経度 で特定することができます。     Geolocator 位置情報を使用するにはGeolocatorAPIを使用します。 まずこのようなXAML UIをつくります。 <Grid> <StackPanel> <TextBlock x:Name=”text_latitude” FontSize=”24″/> <TextBlock x:Name=”text_longitude” FontSize=”24″/> <TextBlock x:Name=”text_accuracy” FontSize=”24″/> <TextBlock x:Name=”text_city” FontSize=”24″/> <TextBlock x:Name=”text_country” FontSize=”24″/> <TextBlock x:Name=”text_state” FontSize=”24″ /> <TextBlock x:Name=”text_portalCode” FontSize=”24″/> </StackPanel> </Grid>   コンストラクタでGeolocatorを初期化し、 GetGeopositionAsyncメソッドで位置情報を取得します。 さまざまな情報を取得できますが都道府県名や市名などは取得できませんでした。もしかしたらGPSがついているデバイスなら取得できるかもしれません。 Geolocator geolocator = new Geolocator(); Geoposition position =await geolocator.GetGeopositionAsync();…