<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="sensorLandscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- Accepts URIs that begin with "memoryc://cerebrotrial” -->
<data
android:host="cerebrotrial"
android:scheme="memoryc" />
</intent-filter>
</activity>
Когда я проверяю свое объявление из Помощника по рекламе в Facebook, отложенная ссылка успешно передается. Но когда я нажимаю на предварительный просмотр объявления в приложении Facebook, отложенная глубокая ссылка становится пустой. Я пытаюсь поймать глубокую связь с нижеприведенными реализациями. Сначала я пытаюсь получить глубокую ссылку из AppLinkData
, затем из самой базовой реализации c getIntent()
и, наконец, из bolts.Applinks
. ApplinkData
равно нулю, намерение ничего не возвращает, а targetUrl
равно нулю.
// Suggested Facebook implementation
FacebookSdk.setAutoInitEnabled(true);
FacebookSdk.fullyInitialize();
AppLinkData.fetchDeferredAppLinkData(this,
new AppLinkData.CompletionHandler() {
@Override
public void onDeferredAppLinkDataFetched(AppLinkData appLinkData) {
// Process app link data
if (appLinkData != null) {
ConfigAPI.setRefererURL(appLinkData.getTargetUri().toString());
JsonObject jsonParams = ConfigAPI.getPayLoad();
new CallAPI(jsonParams).execute();
}
}
}
);
//persist deep link data
Intent intent = getIntent();
Uri data = intent.getData();
if (data != null) {
Log.i("DEEP LINK", data.toString());
ConfigAPI.setRefererURL(data.toString());
JsonObject jsonParams = ConfigAPI.getPayLoad();
new CallAPI(jsonParams).execute();
}
// using the bolts.Applinks
Uri targetUrl = AppLinks.getTargetUrlFromInboundIntent(this, getIntent());
if (targetUrl != null) {
ConfigAPI.setRefererURL(targetUrl.toString());
JsonObject jsonParams = ConfigAPI.getPayLoad();
new CallAPI(jsonParams).execute();
}