21

私はGoogle Plusページを持っています

https://plus.google.com/u/0/b/101839105638971401281/101839105638971401281/posts

とAndroidアプリケーション。このページをアプリで開きたいです。ブラウザを開きたくない!

これにより、ブラウザが開きます。

URL="https://plus.google.com/b/101839105638971401281/101839105638971401281/posts";
uri = Uri.parse(URL);
it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);

これはクラッシュします:

 Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setClassName("com.google.android.apps.plus",             "com.google.android.apps.plus.phone.UrlGatewayActivity");

intent.putExtra("customAppUri", "10183910563897140128");
startActivity(intent);

前もって感謝します!

[解決済み]

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://plus.google.com/101839105638971401281/posts")));

このソリューションを使用すると、ユーザーはGoogle Plus APPを選択するか、ブラウザーを開くことができます。APPを選択した場合、クラッシュは発生しません。

4

6 に答える 6

25

ユーザーが Google+ アプリをインストールしている場合は、次の操作を実行できます。

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://plus.google.com/101839105638971401281/posts")));

URI の構文と、含まれていないことに注意してください/b/id/

于 2012-08-08T16:44:37.800 に答える
3
/**
 * Intent to open the official Google+ app to the user's profile. If the Google+ app is not
 * installed then the Web Browser will be used.
 * 
 * </br></br>Example usage:</br>
 * <code>newGooglePlusIntent(context.getPackageManager(), "https://plus.google.com/+JaredRummler");</code>
 * 
 * @param pm
 *            The {@link PackageManager}.
 * @param url
 *            The URL to the user's Google+ profile.
 * @return The intent to open the Google+ app to the user's profile.
 */
public static Intent newGooglePlusIntent(PackageManager pm, String url) {
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    try {
        if (pm.getPackageInfo("com.google.android.apps.plus", 0) != null) {
            intent.setPackage("com.google.android.apps.plus");
        }
    } catch (NameNotFoundException e) {
    }
    return intent;
}
于 2014-10-04T06:00:53.110 に答える
1

スタック トレースはクラッシュ時に何を示しますか?

また、これが違いを生むかどうかはわかりませんが、ID にタイプミスがあります。あなたが書いた:

intent.putExtra("customAppUri", "10183910563897140128");

しかし、もともとIDは101839105638971401281. 最後に 1 を中断しました。

于 2012-08-08T16:44:24.067 に答える