Facebook Share Dialog Deep Linking iOS

Я полагаю, что в моем приложении для iOS настроены все необходимые материалы для глубоких ссылок. Пользователи могут войти в наше приложение с помощью приложения Facebook, если оно у них есть, или Safari, если нет, и должным образом перенаправлены обратно в наше приложение после его завершения.

Мне трудно добиться такого же перенаправления, когда пользователи нажимают «- Общий доступ через имя приложения» в родном приложении iOS. Я хочу следовать ожидаемому потоку, где, если у них не установлено приложение, оно перенаправляет пользователей в App Store, а если они это делают, оно открывает мое приложение. Прямо сейчас, независимо от того, установлено приложение или нет, пользователи перенаправляются в магазин приложений.

Моя настройка для моего приложения fb (большинство значений запутаны по очевидным причинам) выглядит следующим образом:

введите здесь описание изображениявведите здесь описание изображения

ПРИМЕЧАНИЕ на приведенных выше изображениях большая часть пробелов/кажущихся пустыми значений на самом деле есть и правильные, просто удалены из изображения для конфиденциальности, из-за чего они выглядят пустыми< /em>, но это не так.

У меня это работало над предыдущим приложением примерно 6 месяцев назад, но насколько я понимаю, Facebook с тех пор переключился на ссылки на приложения, и хотя я вроде бы читал через каждую часть документации, которую я могу найти по этому вопросу, я не могу на всю жизнь заставить это работать сейчас.

Я начинаю задаваться вопросом, не является ли это чем-то, что нам нужно настроить в веб-составляющей. Должна ли теперь общедоступная веб-страница иметь встроенные метатеги, которые направляют пользователей в соответствующее место, то есть должна ли страница иметь встроенную схему URL-адреса моего приложения — app-name:// или что?

Есть ли что-то особенное, что нужно сделать для перенаправления из общего доступа в приложении Facebook для iOS, которое отличается от перенаправления из входа в приложение Facebook для iOS?


person Mike    schedule 20.02.2015    source источник


Ответы (1)


Документация Facebook очень неполная. Мне пришлось удалить некоторую информацию с этого сайта: http://applinks.org/documentation/< /а>

В своих приложениях я делюсь всеми историями с помощью ссылки вроде «example.com/share.php», а код в моем файле share.php следующий:

<?php
    require 'Mobile_Detect.php'; //you need to download this
    $detect = new Mobile_Detect;

    //if user is accessing the "shared history" from the facebook website
    //it should be redirected to the website, not allowing him to browse this
    //page, as it is empty.
    //
    //the regex avoids the redirect for facebook crawler
    if (!preg_match('%facebookexternalhit/1.*%si', $_SERVER["HTTP_USER_AGENT"])) {
        if (!$detect->isiOS() && !$detect->isAndroidOS()) {
            header("Location: http://www.example.com/");
            die();
        }
    }

?><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>App Share Page</title>

    <!-- This disables the intermediate web view in mobile, jumping straigt to the app -->
    <meta property="al:web:should_fallback" content="false">

    <!-- Android -->
    <meta property="al:android:url" content="customschemaurl://fromShare">
    <meta property="al:android:package" content="com.mycompany.myappbundleid">
    <meta property="al:android:app_name" content="App name">

    <!-- iOS -->
    <meta property="al:ios:url" content="customschemaurl://fromShare" />
    <meta property="al:ios:app_store_id" content="0000000" /> <!-- itunes connect app id, not bundle id -->
    <meta property="al:ios:app_name" content="App name" />

    <!-- OG Share (url shared) -->
    <meta property="og:title" content="some share title"/>
    <meta property="og:url" content="http://www.example.com/share.php"/>
    <meta property="og:image" content="http://www.example.com/byb-logo.png"/>
    <meta property="og:site_name" content="App name"/>
    <meta property="og:description"
          content="some description text"/>

</head>
<body>
</body>
</html>

Эта простая веб-страница определяет, является ли это Android или iPhone, и запускает приложение, если это веб-браузер (не мобильный), он будет перенаправлять на ваш веб-сайт (возможно, страницу загрузки, если у вас есть мультиплатформенное приложение, такое как я) и позволяет поисковый робот facebook (не мобильный ), чтобы получить доступ к необходимой информации для правильного вызова приложения.

Надеюсь, поможет..

person KnF    schedule 08.05.2015
comment
Это выглядит многообещающе - я посмотрю на это как можно скорее. Спасибо! - person Mike; 09.05.2015
comment
ты это проверял? - person KnF; 17.06.2015
comment
Мне не удалось заставить его работать, но прошло немного времени с тех пор, как я в последний раз изучал его. - person Mike; 17.06.2015