ArcGIS Enterprise 10.5.1 から、カスタム ウィジェットをポータルに追加できるようになりました。つまり、アプリを作成する際に Web AppBuilder の環境でカスタム ウィジェット選択できます。カスタム ウィジェットを使用する前に、カスタム ウィジェットを Web サーバー上でホストし、ポータルに登録しておく必要があります。セキュリティ上の理由から、ポータル管理者だけがカスタム ウィジェットを登録できます。10.6 では、パブリック アプリで、すべてのユーザー (パブリック) と共有するカスタム ウィジェットを使用することで、匿名ユーザーがアクセスできるようになります。
レガシー:
10.5.1 では、パブリック アプリがカスタム ウィジェットを読み込むことができません。この制限は、10.6 で削除されました。パブリック アプリで、パブリックに共有しているカスタム ウィジェットを使用することで、匿名ユーザーがアクセスできるようになります。
カスタム ウィジェットを Web サーバー上でホスト
カスタム ウィジェットを Web サーバー上でホストする操作は、他の Web アプリをホストする操作と変わりません。Web サーバーをインストールして構成する必要があります。一般的な Web サーバーとして、IIS、OS X Server、Apache などがあります。
カスタム ウィジェットを 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 です。
カスタム ウィジェットの登録
各カスタム ウィジェットをポータルに登録する必要があります。これには、ポータル管理者としてサイン インしなければなりません。
- ブラウザー ウィンドウで、ポータルにサイン インします。
- コンテンツ ページの [マイ コンテンツ] タブをクリックします。
- [アイテムの追加] をクリックして、[アプリケーション] を選択します。
- [アプリケーションのエクステンション (AppBuilder)] を選択し、マニフェスト ファイルの URL を指定します。
マニフェスト ファイルへの URL パスの例は <server.domain.com>/<my widget>/manifest.json です。
- [タイトル] ボックスをクリックします。
アイテムのタイトルがマニフェスト ファイルから自動入力されます。必要に応じて、タイトルを手動で編集できます。
- [タグ] ボックスにタグを追加します。
- [アイテムの追加] をクリックします。
カスタム ウィジェットを、[コンテンツ] ページの [マイ コンテンツ] タブで [AppBuilder エクステンション] タイプとして使用できるようになります。
カスタム ウィジェットの共有
ポータル管理者は、アクセスする必要のある組織内のグループでカスタム ウィジェットを共有するか、必要に応じて組織全体またはパブリックにカスタム ウィジェットを共有することができます。
注意:
アプリには、そのアプリにアクセスする権限のあるユーザーと同じ組織に登録されているカスタム ウィジェットだけが読み込まれます。
[マイ コンテンツ] で、カスタム ウィジェットを選択して共有します。Web AppBuilder を開くと、カスタム ウィジェットが [ウィジェットの選択] ダイアログ ボックスの [カスタム] タブに表示されます。
注意:
カスタム ウィジェットを読み込む際に 404 エラーが発生した場合、ウィジェットがそのパッケージ名を使用するモジュールを必要としていないことを確認します。代わりに、相対パスを使用してモジュールを読み込みます。
カスタム ウィジェットの更新
ポータルでカスタム ウィジェットを更新することはできませんが、Web サーバーでホストされているカスタム ウィジェットの HTML 構造と JavaScript コードを更新することができます。
注意:
カスタム ウィジェットが Web サーバーに配置され、[AppBuilder エクステンション] タイプのアイテムとしてポータルに登録されていると、マニフェスト ファイルのコンテンツがエクステンション アイテムに保存されます。つまり、Web サーバー上でホストされているマニフェスト ファイルに加えられた変更は、登録済みのエクステンションで認識されません。マニフェスト ファイルを更新するのではなく、エクステンションを新規に作成することをお勧めします。