Я запускаю рекламу компанию в facebook, и не могу получить deeplink, с помощью методов указанных в документации.
Только один из методов описанных в документации работает, но не один из них не работает как отложенный диплинк (через маркет)
Вот два метода, описанные в документации
AppLinkData.fetchDeferredAppLinkData(this, new AppLinkData.CompletionHandler() {
@Override
public void onDeferredAppLinkDataFetched(AppLinkData appLinkData) {
if (appLinkData!=null){
Toast.makeText(getApplicationContext(),"appLinkData is "+appLinkData.getTargetUri().toString(),Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(),"appLinkData is null",Toast.LENGTH_LONG).show();
}
}
});
Uri targetUrl =
AppLinks.getTargetUrlFromInboundIntent(this, getIntent());
if (targetUrl.equals(null)) {
Log.i("Activity", "App Link Target URL: " + targetUrl.toString());
}
Первый метод возвращает всегда null, второй метод возвращает линк только когда приложение уже установлено, но через play market его не передает.
-
1Пожалуйста, переведите ваш вопрос на русский язык или воспользуйтесь Stack Overflow на английском. И код нужно вставить текстом, а не скриншотом.Alexander Semikashev– Alexander Semikashev2019年01月17日 13:16:13 +00:00Commented 17 янв. 2019 в 13:16
2 ответа 2
В некоторых случаях диплинк не будет приходить повторно на одно и тоже устройство, даже если переустанавливать приложение по новому и делать новые рекламные объявления, попробуйте в первую очередь использовать новое устройство.
Так же могу сказать что для отслеживания диплинка достаточно подключить Facebook SDK и добавить метод onDeferredAppLinkDataFetched, больше ничего, даже в манифесте не надо прописывать intent-filter с scheme.
AppLinkData.fetchDeferredAppLinkData(this,getString(R.string.facebook_app_id),
new AppLinkData.CompletionHandler() {
@Override
public void onDeferredAppLinkDataFetched(AppLinkData appLinkData) {
// Process app link data
Log.d("TAG", "Deep link receive" + appLinkData);
Uri targetUrl = AppLinks.getTargetUrl(getIntent());
if (targetUrl != null) {
Log.d("TAG", "oppppp" + targetUrl.toString());
webView.post(new Runnable() {
@Override
public void run() {
String url2 = url + "?sub1=google";
webView.loadUrl(url2);
}
});
}
}
}
);
}
-
пожалуйста, оставляйте чуть более развёрнутые ответы. постарайтесь рассказать обо всех нюансах, которые могут возникнуть при решении проблемы по вашему сценарию. изложите свои предложения. возможен и краткий ответ, но чем подробнее и понятнее он будет изложен, тем лучше. дополнить ответ можно, нажав правитьaleksandr barakin– aleksandr barakin2021年04月25日 18:12:19 +00:00Commented 25 апр. 2021 в 18:12
Начните задавать вопросы и получать на них ответы
Найдите ответ на свой вопрос, задав его.
Задать вопрос