uwp において pull 型で通知を表示するために background task を使う

10
2015-10-28 関西モバイルアプリ研究会 #7 Universal Windows Platform Pull 型で通知を表示するために Background Task を使う id:nobuoka 株式会社はてな

Upload: yu-nobuoka

Post on 13-Apr-2017

937 views

Category:

Software


0 download

TRANSCRIPT

Page 1: UWP において Pull 型で通知を表示するために Background task を使う

2015-10-28関西モバイルアプリ研究会 #7

Universal Windows Platform

Pull 型で通知を表示するためにBackground Task を使う

id:nobuoka株式会社はてな

Page 2: UWP において Pull 型で通知を表示するために Background task を使う

自己紹介と前置き

● id:nobuoka Android アプリ開発 Windows アプリ開発 サーバーサイド (Scala)

● UWP 上の pull 型での通知の話 Background Task Toast 通知

Page 3: UWP において Pull 型で通知を表示するために Background task を使う

やりたいこと

● Web サービスの通知を端末の通知に表示● リアルタイム性はなくてよい

Page 4: UWP において Pull 型で通知を表示するために Background task を使う

プッシュ型 or プル型

● Push 型 : プッシュ通知 × サーバー側の実装が手間 ○ リアルタイム性がある

● Pull 型 : 定期的にサーバーに問い合わせて変更があれば通知を表示 ○ サーバー側は通知取得 API の用意だけ × リアルタイム性はない

Page 5: UWP において Pull 型で通知を表示するために Background task を使う

Android での pull 型の実装

● Service を使用● AlarmManager で定期的にサービスを起動

API 21 以降なら JobScheduler が便利?● サービスでサーバーから情報を取得● (必要に応じて) 端末に通知を表示

Page 6: UWP において Pull 型で通知を表示するために Background task を使う

Windows Universal Platform では?

● Background task を使用● 定期的に実行するようにタスクを登録● タスクでサーバーから情報を取得● (必要に応じて) Toast 通知を表示

Page 7: UWP において Pull 型で通知を表示するために Background task を使う

Background task の定義

● クラスの作成 (C# や C++ など; JS は不可)

● マニフェストに登録

using Windows.ApplicationModel.Background;

namespace SampleTasks{ public sealed class SampleBackgroundTask : IBackgroundTask { public void Run(IBackgroundTaskInstance taskInstance) { // サーバーから情報を取得 // Toast 通知 } }}

Page 8: UWP において Pull 型で通知を表示するために Background task を使う

Background task の登録

● JS からも登録可能● 対象クラスとトリガーを指定 (名前や条件も)

var b = Windows.ApplicationModel.Background;// TimeTrigger で必要b.BackgroundExecutionManager.requestAccessAsync().then(function () { var builder = new b.BackgroundTaskBuilder(); // 対象クラス builder.taskEntryPoint = "SampleTasks.SampleBackgroundTask"; builder.name = "your_task_name"; builder.setTrigger(new b.TimeTrigger(15, false)); return builder.register();});

Page 9: UWP において Pull 型で通知を表示するために Background task を使う

Background task のデバッグ

● Visual Studio からタスクの起動が可能● 便利!

Page 10: UWP において Pull 型で通知を表示するために Background task を使う

Background task 雑感

● IntentService 的な感じ● 制限は厳しい

CPU・ネットワークリソースのクォータ タイマーの時間は 15 分刻み Android と比べるとできることが限られる

● JS から登録できるがタスクの実装は C#/C++/VB で書く必要がある → JS メインのアプリではやや面倒