ウェブサイトを Windows 10 で動く Universal Windows Platform(UWP)アプリにしてみる
今回つくるもの
bing.com が表示できるだけの UWP アプリ。
背景
Universal Windows Platform bridges というものが build 2015 発表され、そこで計画されている4つプロジェクトがあります。
Project Astoria | APK を UWP アプリに変換する。 Windows Phone のみ実行可能 |
---|---|
Project Islandwood | Objective-C コード で書かれた Xcode のプロジェクトファイルを Visual Studio にインポートし UWP アプリとしてビルドする |
Project Centennial | 従来の Win32 や .NET のアプリを UWP アプリにパッケージ化する |
Project Westminster | 公開されている Web サイトを UWP アプリにパッケージ化する |
今回は最後の Project Westminster というやつを使います。
ちなみにこれ以外の他の3つは Windows 10 が出てから詳細が公開される予定とのこと。
ユニバーサル Windows プラットフォーム ブリッジ - Windows アプリの開発
Project Westminster の正体とは?
スマートフォンのアプリを制作したことがある方なら気づかれた方もいるとは思われますが所謂ガワネイティブです。
内容としては Visual Studio プロジェクトのマニフェストファイルで最初に読み込むファイルをローカルファイルから外部ファイルにするだけのものです。
また、通常のガワネイティブとの違いは、公開しているサイトでも script タグ内に Windows Runtime の命令を記述するとアプリで動かすことができる点にあます。
JavaScript だけでは実行できない通知やタイル、日本では使えませんが Cortana や、日本では使えませんが Cortana 等の機能を呼びたい時に使います。
(Cortana 使いたい)
環境
今回は Windows 8.1 上の Hyper-V で動く Windows 10 Insider Preview build 10162。
Visual Studio Community 2015 RC と Windows 10 SDK Preview Build 10158 を使用しています。
Windows 10 開発ツールのインストール - Windows アプリの開発
手順
- Visual Studio でブランクアプリをつくる
- 今回使用しないファイルを消す
- package.appxmanifest ファイルを編集する
- ビルドして確かめる
Visual Studio でブランクアプリをつくる
Visual Studio 起動し、Ctrl + N で新しいプロジェクトを作成。
インストール済みのテンプレートから JavaScript の Windows Universal の Blank App を選択し、適当なプロジェクト名を付けます。
今回は Google 検索にしてみました。
プロジェクトが作成できましたら F5 を押してデバッグしてみましょう。
自分の環境ですとビルドエラーになります。
ソリューションエクスプローラのプロジェクトを右クリックして .jsproj のあるフォルダを開き、.jsproj の内容を変更します。
.jsproj 内の TargetPlatformMinVersion と TargetPlatformVersion が 10.0.10069.0 になっているので 10.0.10158.0 に変更します。
以前に書いた記事参照
変更後ビルドができれば下準備は OK です
今回使用しないファイルを消す
今回はローカルファイルを使わないので css、js、WinJS のフォルダと default.html を消します。
消さなくてもビルドはできますが必要ないので今回は削除。
また、images フォルダはスプラッシュやアイコンが入っています。
package.appxmanifest ファイルを編集する
ソリューションエクスプローラから package.appxmanifest をダブルクリックして開き
<Application Id="App" StartPage="default.html"> を
<Application Id="App" StartPage="http://www.bing.com/"> にします。
StartPage を変更しましたが外部URLへのアクセス権限がないため bing が表示されません。
<Application Id="App" StartPage="http://www.bing.com/"> の下に以下のものを追加しましょう。
WindowsRuntimeAccess で Windows Runtime の実行制限ができます。
「all」は制限なし。
「allowForWeb」 はカスタムパッケージコードのみ。
「none」 は Windows Runtime への命令実行を許可しません。
デフォルトは 「none」 です。
ビルドして確かめる
F5 押してビルド。
アプリで動く bing を堪能できると思われます。
締め
ただ公開しているサイトをアプリにしたいだけならばこれで終了です。
Windows Runtime へのアクセス、タイル、使用する画像関連、ストア申請等、まだまだできることがあるので今後紹介していきたいと思います。
注意点
UWP アプリということは Windows Phone や Xbox One などでも動くということになります。
画面サイズが異なる為、サイトをアプリにする場合は必ずレスポンシブ(アダプイティブ)レイアウトをする必要があります。
今回の記事の元ネタ
Publish responsive websites to the Windows Store with Project Westminster | Microsoft Edge Dev Blog