

初めてアプリ作成に取り組んでいます。

webビューを用いたandroidアプリから「フェイスブックにシェア」を実装しようとしています。  
＊自作ボタンにてです。公式ボタンは使いたくない事情の為です。。

投稿画面までは表示され、実際に「シェア」ができる（できた）ことは確認できたのですが、  
投稿画面で「キャンセル」「投稿する」を押すと真っ白画面になってしまい、シェア完了画面？に移れません。

＊端末の戻るボタンを押すと、再度フェイスブック側の「シェア」画面に戻ります。（既にシェア完了しているのに）  
＊あとは強制終了しかない状態で、自分のアプリに戻ってくれません。。

該当箇所のソースを登載しますので、どなたかお詳しい方いらっしゃいましたらどこが悪いか、アドバイス等いただけますと幸いです。

ビルドはAndroidStudioで行いました。

※前提※

  1. facebookアカウントにてアプリにログインしている状態 
  2. facebookのjavascriptSDKは読み込んでる状態
  3. jqueryは動作しており、FB.ui();まで処理は到達している
  4. 実際にシェアができたことは確認済み

ソースコード

[code]

    <p><button class="midium blue" id="post_facebook">facebookに公開する</button></p> 
    
    // Facebook投稿ボタン押下 
    $('#post_facebook').on('click', function(){ 
        FB.ui({ 
            method: 'share', 
            href: 指定リンク先URL 
        }, function(response) { 
            //ここの処理に来ていない様子。。 
        }); 
    }
    
[/code]


CC BY-SA 3.0
2015-11-11T04:58:17.483
18659
2016-02-14T01:35:21.167
2015-11-16T00:24:08.160
13211
13211
question
android android-studio facebook
webビューアプリにおける「フェイスブックにシェア」の実装


どのタイミングでClickをバインドしてるか分かりませんし、  
全容が見えないのでFBが何処で宣言されているのかも分かりません。  
WebViewアプリと言うのが、`Cordova`のようなフレームワークなのか  
それともサーバ、またはアプリに内包されているWebページを`WebView`で見せているだけなのか  
不明点が多いので気になる点だけ記載します。

  * jQueryは正しく初期化されているか？  
ｊQueryを使っているようですが正しく初期化されていますか？  
クリックをバインドする箇所でｊQueryが動作しない……なんてことはありませんか？

  * クリックイベントの関数には到達していますか？  
関数が発動していなければそもそも実行されません。  
バインドが上手くいっているか改めて確認してください。

  * `FB`は宣言されており、内包されているオブジェクト内には関数`ui`は存在しますか？  
`FB`が初期化される前に呼び出しても中身が無ければ動作しません。  
クリック時に`FB`が正しく初期化出来ているか確認してください。

  * コールバックには到達していないみたいですが、シェア自体は出来ましたか？  
シェア自体が出来ていなければ、そもそも`FB`が正しい動きをしているかが分かりません  
また、シェアが出来ていても中身がおかしければパラメータが渡っていない事になりますので仕様の確認が必要です。  
他、コールバックに到達した確認はどうやってされたのでしょうか？

以上、参考になれば……と思います。

* * *

  
**追記**  
補足の中で分からないのが"画面が真っ白になる"という点です。  
本来新しくウィンドウやタブを開き投稿するはずの物が  
`window.open`で上書きされていると思います。  
自身のウィンドウを上書きして遷移しているためです。

また、WebSDKを使用しているようですが、  
アプリ側の方はどうなっているのでしょうか？  
未だ実装方法が不明瞭です。


CC BY-SA 3.0
2015-11-11T07:54:01.820
18671
2015-11-12T07:06:58.767
2015-11-12T07:06:58.767
7676
7676
18659
answer