Запрос приложения Facebook открывает Google Play вместо установленного приложения
Некоторое время назад (возможно, год назад) мы реализовали функцию запроса приложения "Отправить подарок" с помощью Facebook SDK на iOS и Android. Мы используем v3.19 fb sdk на Android и v3.24 на iOS. Запрос приложения имеет как action_type, так и object_id. Вещи работают хорошо тогда.
недавно мы заметили, что глубокая связь Android больше не работает. Когда игрок получает запрос приложения подарка в приложении Facebook и нажимает на это уведомление, он перенаправляет в Google Play Store вместо запуска нашего приложения.
глядя на logcat, похоже, Facebook просто попробуйте открыть Google Play Store
02-18 20:11:15.624: I/ActivityManager(587): START u0 {act=android.intent.action.VIEW dat=market://details?id=myapp_id&referrer=utm_source=apps.facebook.com&utm_campaign=fb4a&utm_content=%7B%22app%22%3A469616456758238%2C%22t%22%3A1455123006%7D&fb_source=notification flg=0x10000000 cmp=com.android.vending/com.google.android.finsky.activities.LaunchUrlHandlerActivity (has extras)} from pid 5289
мы включили глубокую ссылку в настройках разработчика Facebook и добавили Key Hash. Эта проблема не возникает в iOS, при нажатии на уведомление в приложении Fb приложение iOS запускается.
Есть сообщение, которое очень похоже на эту глубокую ссылку в Facebook, которая открывает Google Play вместо приложения (даже если оно установлено). В упомянутом посте нам нужно добавить следующее в манифест, означает ли это, что наша старая версия приложения больше не работает без блока кода? Также у нас нет схемы для нашего приложения, где мы можем ее определить? и значит ли это, когда мы отправляем подарок, нам нужно использовать эту схему?
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="myapp"/>
</intent-filter>
1 ответ
В фейсбуке есть старая страница с надписью
Имя класса. Это имя класса основной деятельности, которую вы хотите запустить в Facebook. Включите пространство имен вашего приложения (например:
com.domain.appname.MainActivity
). Это поле также используется для создания URL-адреса магазина Google Play.
Мне понадобилось время, чтобы понять это, но, видимо, Class Name
поле должно содержать полное имя класса. (com.domain.appname.MainActivity
)