2013-04-12 20 views
5

iframeをロードする際にFacebook jsssdkに問題があります。 私たちのアプリはstbuildにiOSアプリにバンドルされています(httpをmobielウェブページとして提供する以外に)。Facebook:スキップレス// iframe srcのようなボタンの問題

「iOSモード」では、アプリの起点はfile:///[...]/index.htmlです。 //connect.facebook.net/en_US/all.jsfile:///connect...に翻訳されているため、FacebookのスキームレスURLスタイルは私たちのために壊れています。

(function(d, s, id, debug){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/" + bp.lib.Facebook.getCurrentLocale() + "/all" + (debug ? "/debug" : "") + ".js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk', /*debug*/ false)); 

しかし、FacebookのSDKは、ボタンのような個人のためのiframeを作成します。そのため、私たちは私たちにスニペットを更新しました。これらには<iframe src="//..." >もあり、中断します。私はURLスキームを使用するためにsdkを強制する方法を見つけませんでした。

アイデアはありますか?ありがとう

+1

"クイックフィックス"としてiframeコードを自分で生成することができます(edge.createイベントをリッスンする必要がない場合)。 – CBroe

+0

+1、あなたは自分でプラグインのiframe版を使用するだけですか? – Igy

+0

イベントを聴く必要はありません。しかし、私はビューにボタンのような動的に追加するように統合する方が簡単なので、とにかくSDKを使用することをお勧めします。私はこれをあなたの答えとして定式化することをお勧めします.JS SDKで使用するURLスキームを設定する方法がない場合、私はそれを受け入れます。 –

答えて

0

あなたのウェブページに含めるすべてのiframeコードとその他のファイルにはhttps://を使用できます。通常のhttp接続とhttps接続では正常に動作します。このような問題を防ぐには、これが最善の方法です。