Есть ли новый способ открыть URL-адрес fb непосредственно в fb, а не в браузере?

 public static Intent getOpenFacebookIntent(Context context,String url) {

        try {
            context.getPackageManager().getPackageInfo("com.facebook.katana", 0);
            return new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        } catch (Exception e) {
            return new Intent(Intent.ACTION_VIEW, Uri.parse(url));
        }
    }

Я использовал этот код, и он работал, но теперь это не так. Мне нужно какое-либо намерение открыть URL-адрес в Facebook напрямую. Этот пост помог мне, Открыть страницу Facebook из приложения для Android?

🤔 А знаете ли вы, что...
Java обеспечивает возможность создания пользовательских классов и библиотек.


1
39
1

Ответ:

Решено

Открыть ссылку на фейсбук

    private void openFacebookApp() {
    String facebookUrl = "www.facebook.com/XXXXXXXXXX";
    String facebookID = "XXXXXXXXX";

    try {
        int versionCode = getActivity().getApplicationContext().getPackageManager().getPackageInfo("com.facebook.katana", 0).versionCode;

        if (!facebookID.isEmpty()) {
            // open the Facebook app using facebookID 
(fb://profile/facebookID or fb://page/facebookID)
            Uri uri = Uri.parse("fb://page/" + facebookID);
            startActivity(new Intent(Intent.ACTION_VIEW, uri));
        } else if (versionCode >= 3002850 && !facebookUrl.isEmpty()) {
            // open Facebook app using facebook url
            Uri uri = Uri.parse("fb://facewebmodal/f?href = " + facebookUrl);
            startActivity(new Intent(Intent.ACTION_VIEW, uri));
        } else {
            // Facebook is not installed. Open the browser
            Uri uri = Uri.parse(facebookUrl);
            startActivity(new Intent(Intent.ACTION_VIEW, uri));
        }
    } catch (PackageManager.NameNotFoundException e) {
        // Facebook is not installed. Open the browser
        Uri uri = Uri.parse(facebookUrl);
        startActivity(new Intent(Intent.ACTION_VIEW, uri));
    }
}

Добавить запрос в манифест

    <queries>
    <package android:name = "com.google.android.gm" />
    <package android:name = "com.facebook.katana" />
    <intent>
        <action android:name = "android.intent.action.VIEW" />
        <data android:scheme = "https" />
    </intent>
    <intent>
        <action android:name = "android.intent.action.DIAL" />
        <data android:scheme = "tel" />
    </intent>
    <intent>
        <action android:name = "android.intent.action.SEND" />
        <data android:mimeType = "*/*" />
    </intent>
</queries>