Portal for ArcGIS 10.5.1 から、カスタム ウィジェットをポータルに追加できるようになりました。つまり、アプリを作成する際に Web AppBuilder の環境でカスタム ウィジェット選択できます。カスタム ウィジェットを使用する前に、カスタム ウィジェットを Web サーバー上でホストし、ポータルに登録しておく必要があります。セキュリティ上の理由から、ポータル管理者だけがカスタム ウィジェットを登録できます。パブリック アプリには、匿名ユーザーがアクセスした場合にカスタム ウィジェットが読み込まれません。
カスタム ウィジェットを Web サーバー上でホスト
カスタム ウィジェットを Web サーバー上でホストする操作は、他の Web アプリをホストする操作と変わりません。Web サーバーをインストールして構成する必要があります。一般的な Web サーバーとして、IIS、OS X Server、Apache などがあります。
カスタム ウィジェットを Web サーバー上でホストするには、次の手順を実行してください。
- Web サーバーへの匿名アクセスを有効にします。
ホスティング位置への匿名アクセスが可能でなければなりません。
- HTTPS を有効にします。
Web サーバーで HTTPS アクセスを有効にして、混在コンテンツが作成されないようにします。Web AppBuilder では、HTTPS 接続の下に HTTP を読み込むことで生成されるアクティブな混合コンテンツが許可されません。また、サーバーでは、HTTPS 接続を確立するために証明機関で発行された有効な SSL 証明書が必要です。
- クロス オリジン リソース共有 (CORS) を有効にします。
Web AppBuilder はポータル ドメイン下で動作しますが、このドメインは、カスタム ウィジェットをホストしている Web サーバーのドメインとは異なる場合があります。ポータル ドメインからのアクセスを許可するために、Web サーバーで CORS を有効にする必要があります。
- JSON ハンドラーを Web サーバーに追加します。
各ウィジェットは、ウィジェットのプロパティを記述した JSON マニフェスト ファイルで構成されています。Web サーバーの中には、デフォルトで JSON ファイルの拡張子を認識しないものもあります。この場合には、アプリケーション レベル以上のレベルで新規の MIME タイプとしてサーバーに追加する必要があります。MIME タイプでは、*.json をファイル名拡張子として指定し、application/json を MIME タイプとして指定する必要があります。
- カスタム ウィジェットを Web サーバーに配置します。
カスタム ウィジェット フォルダーを Web サーバーにコピーすることができます。配置が終了した後、カスタム ウィジェットのマニフェスト ファイルへの URL パスを取得する必要があります。マニフェスト ファイルへの URL パスの例は <server.domain.com>/<my widget>/manifest.json です。
カスタム ウィジェットの登録
各カスタム ウィジェットをポータルに登録する必要があります。これには、管理者としてサイン インしなければなりません。
- ブラウザー ウィンドウで、ポータルにサイン インします。
- [マイ コンテンツ] をクリックします。
- [アイテムの追加]をクリックして [アプリケーション]を選択します。
- [アプリケーション エクステンション (App Builder)] を選択して、マニフェスト ファイルの URL を指定します。
マニフェスト ファイルへの URL パスの例は <server.domain.com>/<my widget>/manifest.json です。
- [タイトル] ボックスをクリックします。
アイテムのタイトルがマニフェスト ファイルから自動入力されます。必要に応じて、タイトルを手動で編集できます。
- [タグ] ボックスにタグを追加します。
- [アイテムの追加] をクリックします。
これで、カスタム ウィジェットを [マイ コンテンツ] で [App Builder エクステンション] タイプとして使用できるようになります。
カスタム ウィジェットの共有
管理者は、アクセスする必要のある組織内のグループでカスタム ウィジェットを共有するか、必要な場合は組織全体でカスタム ウィジェットを共有することができます。
注意:
カスタム ウィジェット アイテムをパブリックに共有することはお勧めしません。セキュリティ上の理由から、パブリック アプリには、匿名ユーザーがアクセスした場合にカスタム ウィジェットが読み込まれません。また、アプリには、そのアプリにアクセスする権限のあるユーザーと同じ組織に登録されているカスタム ウィジェットだけが読み込まれます。
[マイ コンテンツ] で、カスタム ウィジェットを選択して、グループまたは組織で共有します。Web AppBuilder を開くと、カスタム ウィジェットが [ウィジェットの選択] ダイアログ ボックスの [カスタム] タブに表示されます。
カスタム ウィジェットの更新
ポータルでカスタム ウィジェットを更新することはできませんが、Web サーバーでホストされているカスタム ウィジェットの HTML 構造と JavaScript コードを更新することができます。
注意:
カスタム ウィジェットが Web サーバーに配置され、[App Builder エクステンション] タイプのアイテムとしてポータルに登録されていると、マニフェスト ファイルのコンテンツがエクステンション アイテムに保存されます。つまり、Web サーバー上でホストされているマニフェスト ファイルに加えられた変更は、登録済みのエクステンションで認識されません。マニフェスト ファイルを更新するのではなく、エクステンションを新規に作成することをお勧めします。