2014-12-09 4 views
1

Я реализовал Deep-linking в своем приложении для Android. Я хочу отправить ссылки через Facebook Messenger своим друзьям, и когда они нажмут на него, приложение откроется, если оно будет установлено, иначе Google Play Store должен открыть приложение.Android Facebook Deeplink перенаправление на Google Play Store

У меня есть следующий фильтр намерений в манифесте:

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <data android:scheme="christmascards" /> 
</intent-filter> 

Это то, что я кладу в Params, которое я посылаю на Facebook, чтобы получить мой канонический URL:

Bundle params = new Bundle(); 
    params.putString("access_token", accessToken); 
    params.putString("name", "Christmas Cards Link"); 
    params.putString("android", "[{\"app_name\": \""+getString(R.string.app_name)+"\" ," + 
      "\"class\":\"\"," + 
      "\"package\":\"com.iovchev.christmascards\"," + 
      "\"url\":\"christmascards://postcard?id="+cardId+"\"}]" 
      ); 

Это то, что Я отправляю в Messenger, когда я получаю свой канонический URL:

FacebookDialog.MessageDialogBuilder builder = 
new FacebookDialog.MessageDialogBuilder(SendCardActivity.this) 
.setLink(url) 
.setName("Christmas Card For You") 
.setCaption("Share amazing christmas cards with your friends.") 
.setPicture("http://i.imgur.com/L2KlJWQ.png") 
.setDescription("To view my amazing post card just click on the link here. You must have  Christmas Cards app for Android."); 
FacebookDialog dialog = builder.build(); 
dialog.present(); 

И всякий раз, когда я нажимаю на сообщение, e в мессенджере, я всегда перенаправляюсь в Google Play Store. Раньше все работало без каких-либо проблем, и все еще, когда я пытаюсь открыть старые сообщения, открывается мое приложение. Единственное различие между нами было то, что у меня были параметры ios для приложения.

Я хочу получить пользовательскую схему, которую я отправляю с данными в ней (я имею в виду идентификатор открытки) и использовать ее в своей HomeActivity, поэтому я удалил содержимое поля класса (когда оно установлено посылал пустое намерение без указателя, который я предоставляю).

Доступ маркер поля представляет собой комбинацию «APP_ID | app_secret»

То, что я пробовал:

  1. Добавить Ios параметров просто проверить, если все работает - не работает
  2. остановка Force и очистить приложения для facebook и messenger - Не работает
  3. Добавить поле класса в android pasams как com.iovchev.christmascards.HomeActivity - Не работает
  4. Повторно проверить Хэш ключи - Не работает
  5. Изменить позиции категорий в намерениях фильтра - Не работает

Любые идеи?

Update 1:

Для старых ссылок при нажатии на ссылку посланец проливает следующее намерение:

act=android.intent.action.VIEW dat=christmascards://postcard?id=Vi9XTnj85R&target_url=https://fb.me/1509516792632317 

Вот почему начинается мое приложение.

Для новых ссылок он подбрасывает следующее намерение:

act=android.intent.action.VIEW dat=https://fb.me/624376077674657 cmp=com.android.chrome/com.google.android.apps.chrome.Main}. 

Вот почему мое приложение не запускается.

Update 2:

Когда вы поделитесь ссылкой с использованием

FacebookDialog shareDialog = new FacebookDialog.ShareDialogBuilder(MainActivity.this) 
.setLink(url) 
.build(); 
uiHelper.trackPendingDialogCall(shareDialog.present()); 

Все в порядке. Так что проблема с посланником?

ответ

Смежные вопросы