0

AndroidSDKを使用してリンクを投稿しようとしています。

投稿アンカーをクリックしても、新しいブラウザウィンドウは開きません。代わりに、現在のタブ(Facebookプロファイル/ニュースフィード)が使用されます。これにより、ユーザーは自分のFacebookブラウザタブを失うことになります。

これは、意図した動作とは思えません。他のアプリケーション(youtube、NewYorkTimes)は、新しいタブを開きます。私のアプリのサイトURLキャンバスURLの両方が、フィードのリンク属性が指す同じURLに設定されていることは、何らかの形で関連している可能性があります。

アンカーのソースを確認すると、target='_blank'HTML属性が不足していることがわかります(YouTubeのビデオ投稿にはその属性があります)。

編集:

たぶん私は自分自身を明確にしていませんでした...ここでの問題は、ユーザーの壁にフィードを投稿する段階ではありません。この問題は、フィードダイアログを使用して投稿が成功した後、ユーザーのウォールでその投稿(投稿の添付画像またはリンク)をクリックした場合にのみ発生します。そうすると、現在のブラウザタブにあるリンクのアドレス(Facebookから)にリダイレクトされます。

編集2:

私は他の誰かのコードを使用しています。それはCordova(Phonegap)facebookプラグインです。

@ Malione、私が使用している完全なコードはhttps://github.com/mgcrea/cordova-facebook-connectにあります。

関連する関数(の下にあるsrc\com\facebook\android\Facebook.java)である可能性のある1つの関数をコピーして貼り付け、役立つ可能性のある2つのログ行を追加しました。

    /**
 * Cordova interface to display a dialog
 */
public PluginResult dialog(final JSONArray args, final String callbackId) throws JSONException, FileNotFoundException, MalformedURLException, IOException {
    Log.d(CLASS, "dialog() :" + args.toString());
    JSONObject params = args.getJSONObject(0);
    PluginResult pluginResult = new PluginResult(PluginResult.Status.NO_RESULT);

    final String method = params.has("method") ? params.getString("method") : "feed";
    JSONObject optionsObject = (JSONObject)params.get("params");
    final Bundle options = new Bundle();
    Iterator<?> keys = optionsObject.keys();
    while( keys.hasNext() ){
        String key = (String)keys.next();
        options.putString(key, optionsObject.getString(key));
        //if(optionsObject.get(key) instanceof JSONObject)
    }

    final FacebookConnect me = this;
    Runnable runnable = new Runnable() {
        public void run() {
            Log.d("Roei ------->>>>>>>Dialog options:", options.toString());
            Log.d("Roei ------->>>>>>>Dialog context:", me.cordova.getContext().toString() );
            me.getFacebook().dialog(me.cordova.getContext(), method, options, new RegularDialogListener(me, callbackId));
        };
    };
    pluginResult.setKeepCallback(true);
    this.cordova.getActivity().runOnUiThread(runnable);

    return pluginResult;
}

そして、これはログファイルの出力です:

08-28 20:21:18.015: D/CordovaLog(25340): picture: https://surf-space.com/wp-content/uploads/spots/user_reports/default/surf-report.jpg
08-28 20:21:18.015: D/CordovaLog(25340): : Line 1172087949 : picture: https://surf-space.com/wp-content/uploads/spots/user_reports/default/surf-report.jpg
08-28 20:21:18.015: I/Web Console(25340): picture: https://surf-space.com/wp-content/uploads/spots/user_reports/default/surf-report.jpg at :1172087949
08-28 20:21:18.025: D/dalvikvm(25340): GC_CONCURRENT freed 395K, 49% free 3328K/6471K, external 598K/1065K, paused 6ms+3ms
08-28 20:21:18.035: D/FacebookConnect(25340): dialog() :[{"method":"feed","params":{"picture":"https:\/\/surf-space.com\/wp-content\/uploads\/spots\/user_reports\/default\/surf-report.jpg",
"method":"feed","description":"Wave height: 1.3 Meters<center \/>Surf conditions: Fine<center \/>","link":"https:\/\/surf-space.com\/spots\/israel\/","name":"Roei Bahumi posted a surf report for: Neurim, Netanya"}}]
08-28 20:21:18.035: D/Roei ------->>>>>>>Dialog options:(25340): Bundle[{picture=https://surf-space.com/wp-content/uploads/spots/user_reports/default/surf-report.jpg, method=feed, description=Wave height: 1.3 
Meters<center />Surf conditions: Fine<center />, name=Roei Bahumi posted a surf report for: Neurim, Netanya, link=https://surf-space.com/spots/israel/}]
08-28 20:21:18.035: D/DroidGap(25340): This will be deprecated December 2012
08-28 20:21:18.035: D/Roei ------->>>>>>>Dialog context:(25340): com.surf_space.surf_space4.MainActivity@405eb938
08-28 20:21:18.035: D/DroidGap(25340): This will be deprecated December 2012
08-28 20:21:19.897: W/InputManagerService(171): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@40a82a20
08-28 20:21:28.125: D/FacebookConnect(25340): RegularDialogListener::onComplete() Bundle[{post_id=839443974_490613954283080}]
08-28 20:21:28.155: D/CordovaLog(25340): FacebookConnect.dialog:{"post_id":"839443974_490613954283080"}
08-28 20:21:28.155: D/CordovaLog(25340): : Line 1172088957 : FacebookConnect.dialog:{"post_id":"839443974_490613954283080"}
08-28 20:21:28.155: I/Web Console(25340): FacebookConnect.dialog:{"post_id":"839443974_490613954283080"} at :1172088957

これはあなたが話していたコードの一部ですか?Facebookに送信されたデータに何か足りないものがありますか?

そうでない場合は、設定方法を説明しているFacebook Android SDKのドキュメントページに移動してください。また、そのようtarget='_blank'なリクエストの例を示してもらえますか。感謝します(コードで何を探すべきかについてもわかります)。

4

0 に答える 0