Как я могу получить данные ссылки на приложение, если мое приложение не было установлено, когда пользователь нажал глубокую ссылку в приложении facebook? Существует удивительно мало документации из facebook по этой проблеме.
У меня есть глубокая ссылка https://fb.me/635533123230265
Что возвращает HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>App Link</title>
<meta property="fb:app_id" content="619350481515196">
<meta property="al:android:url" content="instapanel://panel?utm_source=fb&utm_medium=cpi&utm_term=sf&utm_campaign=PROPE">
<meta property="al:android:package" content="com.instapanel.android">
<meta property="al:android:app_name" content="Instapanel">
<meta property="al:web:should_fallback" content="false">
<meta http-equiv="refresh" content="0;url=http://play.google.com/store/apps/details?id=com.instapanel.android">
</head>
<body>Redirecting...</body>
</html>
Если приложение уже установлено, AppLinkData appLinkData = AppLinkData.createFromActivity(activity);
работает отлично.
Но если приложение не было установлено, я полагаю, что я должен использовать AppLinkData.fetchDeferredAppLinkData
. Я могу проверить, что в SDK facebook он делает HTTP-запрос и получает JSON, но он никогда не содержит глубокую ссылку, просто {"success":true}
. Любые идеи?
Вот мой код:
// Fetch data immediately.
AppLinkData appLinkData = AppLinkData.createFromActivity(activity);
App.setAppLinkData(appLinkData); // Handles appLinkData
// In case data is deferred because app wasn't installed yet.
AppLinkData.fetchDeferredAppLinkData(activity, new AppLinkData.CompletionHandler() {
@Override
public void onDeferredAppLinkDataFetched(AppLinkData appLinkData) {
App.setAppLinkData(appLinkData); // Handles appLinkData. appLinkData is always null here.
}
});