非対応ブラウザにてガイドを表示する

 

概要

ソーシャルメディア等にアプリケーションの url を投稿すると、その url は ブラウザだけでなく、ネイティブアプリケーションの UIWebView で開かれる可能性があります。
一方で Mobage JS SDK はセキュリティ上の課題により、window.open() を使っている箇所があるため、これらの UIWebView の中では正しく動作しません。
従って、この場合はユーザーに対してネイティブアプリケーション内の UIWebView で開いている url を改めて Safari で開き直してもらう必要があります。
この為の枠組みとして、JavaScript SDK では次の仕組みを用意しています。

  • 対応していないブラウザに対して、自動的にガイドを表示するサービス
  • UIWebView で開かれた場合など、対応していないブラウザを検出する枠組み
     
     

    対応していないブラウザに対して、自動的にガイドを表示するサービス

    対応していないブラウザに対して、自動的にガイドを表示したい場合は、以下のように mobage.init() で明示的にshowBrowserSwitchGuide フィールドをtrue にして呼び出します。
     
    上記の例では自動的に以下のようにガイドが表示されます。
     

     
     
     

    UIWebView で開かれた場合など、対応していないブラウザを検出する枠組み

    これらの挙動をマニュアルで行いたい場合のコードは下記のようになります。
    上記からも分かる通り、iOS のネイティブアプリケーション内ブラウザのような UIWebView で開かれてしまった場合などで、platform.unsupportedBrowser イベントが発生します。
    このイベントを mobage.event.subscribe()メソッド で実行する事によって、JavaScript SDK の非対応ブラウザかどうかを検出する事が出来ます。
    このイベントを受信した場合にマニュアルでガイドを開く場合は browser_swtich_guide サービスを呼び出します。現在は非対応端末とは、以下の3つです。
  • OS が iOS でブラウザがGoogle Chrome の場合
  • OS が iOS でアプリ内ブラウザがWebKit ベースかつSafari ではない場合
  • OS が Android で Facebook WebView の場合
    後者がいわゆる UIWebView で開かれた場合だと判定します。
    あえてマニュアルで行いたい場合は次のようなケースを想定しています。
  • 自分たちでまったく独自のUI のガイドを表示したい場合
  • ガイドを表示する前後に何らかの処理を差し込みたい場合
     

    注意事項

  • JS SDK のバージョンは2.10.0以上をご利用ください。

PREVIOUS

ライフサイクルイベントの通知リクエスト

NEXT

自由文投稿 (TextdataAPI) の利用方法