質問: 初めてアプリ作成に取り組んでいます。 webビューを用いたandroidアプリから「フェイスブックにシェア」を実装しようとしています。 *自作ボタンにてです。公式ボタンは使いたくない事情の為です。。 投稿画面までは表示され、実際に「シェア」ができる(できた)ことは確認できたのですが、 投稿画面で「キャンセル」「投稿する」を押すと真っ白画面になってしまい、シェア完了画面?に移れません。 *端末の戻るボタンを押すと、再度フェイスブック側の「シェア」画面に戻ります。(既にシェア完了しているのに) *あとは強制終了しかない状態で、自分のアプリに戻ってくれません。。 該当箇所のソースを登載しますので、どなたかお詳しい方いらっしゃいましたらどこが悪いか、アドバイス等いただけますと幸いです。 ビルドはAndroidStudioで行いました。 ※前提※ 1. facebookアカウントにてアプリにログインしている状態 2. facebookのjavascriptSDKは読み込んでる状態 3. jqueryは動作しており、FB.ui();まで処理は到達している 4. 実際にシェアができたことは確認済み ソースコード ``` facebookに公開する // Facebook投稿ボタン押下 $('#post_facebook').on('click', function(){ FB.ui({ method: 'share', href: 指定リンク先URL }, function(response) { //ここの処理に来ていない様子。。 }); } ```
回答: どのタイミングでClickをバインドしてるか分かりませんし、 全容が見えないのでFBが何処で宣言されているのかも分かりません。 WebViewアプリと言うのが、`Cordova`のようなフレームワークなのか それともサーバ、またはアプリに内包されているWebページを`WebView`で見せているだけなのか 不明点が多いので気になる点だけ記載します。 * jQueryは正しく初期化されているか? jQueryを使っているようですが正しく初期化されていますか? クリックをバインドする箇所でjQueryが動作しない......なんてことはありませんか? * クリックイベントの関数には到達していますか? 関数が発動していなければそもそも実行されません。 バインドが上手くいっているか改めて確認してください。 * `FB`は宣言されており、内包されているオブジェクト内には関数`ui`は存在しますか? `FB`が初期化される前に呼び出しても中身が無ければ動作しません。 クリック時に`FB`が正しく初期化出来ているか確認してください。 * コールバックには到達していないみたいですが、シェア自体は出来ましたか? シェア自体が出来ていなければ、そもそも`FB`が正しい動きをしているかが分かりません また、シェアが出来ていても中身がおかしければパラメータが渡っていない事になりますので仕様の確認が必要です。 他、コールバックに到達した確認はどうやってされたのでしょうか? 以上、参考になれば......と思います。 **追記** 補足の中で分からないのが"画面が真っ白になる"という点です。 本来新しくウィンドウやタブを開き投稿するはずの物が `window.open`で上書きされていると思います。 自身のウィンドウを上書きして遷移しているためです。 また、WebSDKを使用しているようですが、 アプリ側の方はどうなっているのでしょうか? 未だ実装方法が不明瞭です。