У меня с трудом получается, что AppLinks работает в моем приложении для Android, я позвоню в MyApp. Я следил за документацией на сайте разработчиков Facebook для интеграции ссылок приложений в существующий контент. Инструмент Facebook Debug (https://developers.facebook.com/tools/debug/og/object/) показывает мой веб-странице получать Царапины правильно, и показывает свои 3 мета-теги для applinks:Facebook AppLinks не передает URI для Android-приложения
<meta property="al:android:app_name" content="MyApp" />
<meta property="al:android:package" content="com.myapp.android" />
<meta property="al:android:url" content="myapp://myapphost/myapppath" />
У меня есть открытые Истории Graph, что я выкладываю в Facebook, используя Share Диалог, который разделить URL I просто пропустили инструмент Debug от Facebook. Эти Open Graph Stories были просмотрены/одобрены Facebook и показаны в новостных лентах. При нажатии на Facebook в браузере они переходят к URL-адресу, связанному со Историей. При нажатии на Facebook для Android они открывают только активность по умолчанию MyApp (MainActivity), а не активность, которая обрабатывает схему URI (UriLoadingActivity). Я знаю, что схема URI работает, потому что я использую его в уведомлениях кнопочных: когда пользователь нажимает на уведомление, он принимает их к UriLoadingActivity:
<activity
android:name="com.myapp.android.activity.UriLoadingActivity"
android:parentActivityName="com.myapp.android.activity.MainActivity" >
<intent-filter>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="myapphost"
android:scheme="myapp" />
</intent-filter>
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.myapp.android.activity.MainActivity" />
</activity>
У меня есть журналы в OnCreate() из MainActivity для проверки Intent данные, переданные из Facebook. Таким образом, я вижу имя и имя приложения Facebook в пакете referer_app_link. Я также получаю target_url, у которого есть URL-адрес веб-страницы, который я разместил в своей Open Graph Story, однако я не вижу ни одной из данных AppLink, которые я предоставил в тегах Meta на моей веб-странице.
Есть ли у кого-нибудь еще подобные проблемы?
Обновление: вот код, который я использую для публикации в FB.
private void shareToFacebook(Bitmap image) {
if (FacebookDialog.canPresentOpenGraphActionDialog(
getApplicationContext(),
FacebookDialog.OpenGraphActionDialogFeature.OG_ACTION_DIALOG)) {
OpenGraphObject myObject = OpenGraphObject.Factory
.createForPost("myapp:object");
myObject.setProperty("title", "My Title");
myObject.setUrl(Constants.SHARE_URL);
myObject.setProperty("description",
"Just Posting to the News Feed!");
OpenGraphAction action = GraphObject.Factory
.create(OpenGraphAction.class);
action.setType("myapp:action");
action.setProperty("object", myObject);
List<Bitmap> images = new ArrayList<Bitmap>();
images.add(image);
FacebookDialog shareDialog = new FacebookDialog.OpenGraphActionDialogBuilder(
this, action, "object").setImageAttachmentsForObject(
"object", images, false).build();
uiHelper.trackPendingDialogCall(shareDialog.present());
}
}
Можете ли вы добавить фрагменты кода о том, как вы делаете эту акцию? Я подозреваю, что приложение FB фактически открывает ваше приложение на старом протоколе глубоких ссылок (в настройках вашего приложения), а не на приложениях, и хочу посмотреть, могу ли я каким-то образом его воспроизвести. –
Я разместил свою долю выше. У меня есть переключатель Deep Linking включен в настройках Facebook. Если я отключу его, он просто откроет общий URL-адрес в браузере Android в приложении Android. –