12

Facebook、Twitter、Google+ など、さまざまなソーシャル ネットワークのソーシャル機能を統合する必要があるアプリケーションに取り組んでいます。

今のところ、Facebook と Twitter では、ユーザーがネイティブ アプリケーションを持っているかどうかを認識し、持っている場合はそれを開いてファン ページを表示しています。

Twitter の場合、次のコードを使用します。

try {

  Intent intent = new Intent(Intent.ACTION_VIEW,
        Uri.parse("twitter://user?screen_name=[user_name]"));
    startActivity(intent);

    }catch (Exception e) {
        startActivity(new Intent(Intent.ACTION_VIEW,
             Uri.parse("https://twitter.com/#!/[user_name]"))); 
    } 

Facebook の場合、次のコードは次のとおりです。

try{

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/" + PROFILE_FACEBOOK_APP_ID));
startActivity(intent);

}catch(Exception e){

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/UserNamePage")));
}

今度は、Google+ でも同じことをしたいと思います。次の Urlhttps://plus.google.com/MY_PAGE_ID/で自分のファン ページを参照できることがわかりましたが、Google+ アプリケーションで開くか、ブラウザで開くかを何度も尋ねられます。ユーザー。

これを行う簡単な方法はありますか?ありがとう。

4

3 に答える 3

12

解決策を見つけました:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName("com.google.android.apps.plus",
"com.google.android.apps.plus.phone.UrlGatewayActivity");
intent.putExtra("customAppUri", "FAN_PAGE_ID");
startActivity(intent);
于 2012-07-04T12:14:32.540 に答える
7

コンポーネントを指定する必要はなく、google+ アプリのパッケージ名だけを指定する必要があるため、これは非常に安全だと思います。

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("https://plus.google.com/[Google+ID]/"));
intent.setPackage("com.google.android.apps.plus"); // don't open the browser, make sure it opens in Google+ app
startActivity(intent);
于 2013-09-06T12:58:15.617 に答える
2

グーグルプラスがインテントに他の情報を必要とするかどうかは不明ですが、一般的なAndroidソリューションとして、ターゲットを明示的に設定できます。google+のパッケージ名が必要になります。

詳細はこちら:http ://developer.android.com/reference/android/content/Intent.html#setPackage%28java.lang.String%29

例えば:

Intent.setPackage("com.google.android.apps.plus"); //Don't know the exact package name
于 2012-07-04T11:13:14.167 に答える