SDKSwiftWKWebViewはじめにみなさん、こんにちは。走れるシステムエンジニア、溝口です。Watcherとしての想像と夢を膨らませておりました。Editionは華麗にスルーし、完全予定調和のSportsモデルを予約しました。WKWebViewとSalesforceでHybridアプリ開発」の補足的な内容となります。前回の記事を見て気付いた方も居らっしゃると思いますが、WebViewでVisualforceのページを表示した際に、セッションの管理をどうするか、という点が考慮されていませんでした。具体的に前回の記事の実装だとどうなるか見て行きましょう。ここまでは前回と同じですね、普通にWebViewにVisualforceで実装した詳細画面が表示されています。このままホームボタンを押して、セッション有効期間が切れるまで放置してみましょう。------------数時間後-------------さて、セッションが切れる時間となりました。それでは、再度サンプルアプリを開いて見ましょう。oh...、これはイケてないですね。この様に、「セッションが切れた時にどうするか」という観点での実装が足りていなかった為、この様な現象が起きてしまいました。Salesforceとの通信前にセッションのチェック意図せずログイン画面が表示されてしまうのは、WebViewでVisualforceの画面を開いたままにした場合、「sid=」で付与しているセッションID(アクセストークン)の有効期間が切れてしまったまま、再度リクエストを投げてしまうことが原因でした。「じゃあ、Salesforceとの通信の前に認証を行い、セッションのチェックをしよう!」ということで、前回のコードを以下の様に修正しました。どこが変わったのか1つずつ見て行きましょう。ViewDidLoadでSFOAuthCoordinatorのDelegateを自身のクラスへ実装することを宣言します。することで、認証処理を行った後の処理を自身のクラス内で受け取れる様になります。ViewWillAppearにて認証処理を実行するメソッドを呼び出します。後は非同期で認証処理が走り、セッションID(アクセストークン)が切れていた場合、リフレッシュトークンにてセッションの書き換えが実行されます。最後に、認証が完了した際にこのメソッドが呼ばれます。いう経路を辿ることが出来ます。今回はちょっとしたTips的な内容となってしまいましたが、WebViewを使う上でセッションの管理をどう実装するのか、という部分は、モバイル開発を行う上でも重要なポイントと言えると思います。検索クラウドやるならテラスカイ。求む!Salesforce開発エンジニア。