回答モバイルアプリでインラインフレームを使用するエンドユーザーをWebアプリに自動的にログインさせるモバイルアプリに戻るWeb画面内のリンク質問Webアプリの画面をモバイルアプリで再利用する方法はありますか。回答OutSystemsでは、既存の機能をモバイルアプリで直接開発して移行することを推奨しています。常にこの方法を選択する必要はなく、Web画面を埋め込んだインラインフレームを使用して既存のWeb画面をモバイルアプリに統合できます。このためには、以下の手順を実行する必要があります。Web画面を取得するときに適切なリクエストヘッダーを送信するモバイルアプリで、インラインフレームを使用します。モバイルアプリのエンドユーザーが自動的にログインするように、Webアプリを更新します。モバイルアプリでインラインフレームを使用する以下の手順を実行して、Web画面を表示するインラインフレームを含むブロックを作成します。InternalBrowserという名前の新しいブロックを作成し、Sourceという名前のテキスト入力をブロックに追加します。以下のCSSクラスをブロックのプロパティスタイルシートに追加します。top:100px;}モバイルアプリに埋め込む特定のWeb画面によっては、CSSクラスinternal-frameに微調整を加える必要がある場合があります。“internal-frame”」を追加します。クライアントアクションFetchIframeをブロックに追加します。FetchIframeアクションで、JavaScriptノードとパラメータSourceを追加し、Webブロックの入力SourceにJavaScriptのパラメータを関連付けます。適切なリクエストヘッダーでWeb画面を取得する以下のコードをJavaScriptノードに追加します。require("Communication").CSRF.getCSRFToken());iframeGetter.send();FetchIframeアクションでは、リクエストを保護し、Session_GetMobileAppLoginInfoアクションによるログイン情報の検証を許可する適切なHTTPヘッダーを送信します。Changedイベントのイベントハンドラとして定義します。これにより、モバイルアプリでブロックが表示されたときとSourceパラメータが変更されたときにFetchIframeアクションが実行されるようになります。モバイルアプリでInternalBrowserブロックを使用し、ブロックの入力Sourceに埋め込むWeb画面のURLを渡します。エンドユーザーをWebアプリに自動的にログインさせるモバイルアプリに埋め込まれるWeb画面を含むUIフローに、OnExceptionハンドラを追加します。OnExceptionのフローは、セキュリティ例外を処理し、現在のエンドユーザーがモバイルアプリで認証済みであるかどうかを検証します。認証済みの場合、Webアプリにユーザーを自動的にログインさせます。以下のロジックをOnExceptionハンドラに追加します。ログインしていないエンドユーザーからのリクエストを検出するSecurityExceptionハンドラを追加します。PlatformRuntime_API拡張機能のSession_GetMobileAppLoginInfoアクションを参照し、このアクションを使用してエンドユーザーのログイン情報をモバイルアプリから取得します。NullIdentifier()であるかどうかをテストします。Trueの場合、エンドユーザーはWebアプリにログインしており、Webアプリは自動的にエンドユーザーのログインを進めます。Falseの場合、エンドユーザーはログインしておらず、Webアプリはエラーページにリダイレクトします。Trueブランチでは、Session_GetMobileAppLoginInfoアクションで取得した以下の値とLoginシステムアクションを使用して、エンドユーザーを自動的にログインさせます。Session_GetMobileAppLoginInfo.isPersistentLoginアクションの後、外部サイトを使用し、リクエストされたWeb画面のURLを返すGetExceptionURL()にリダイレクトします。“_top”アトリビュートを含めます。このようにしないと、以下のようなカスケードのループが発生する可能性があります。これは、デフォルトではリンクが最上部のウィンドウではなくインラインフレーム内で開かれるために発生します。