Динамическая ссылка всегда открыта в App Store независимо от того, установлено приложение или нет - PullRequest
2 голосов
/ 21 мая 2019

Я боролся с динамическими ссылками в течение нескольких дней. Спасибо за любую помощь, пожалуйста. Я интегрирую динамические ссылки в Firebase, если я вставлю ссылку в URL-адрес Chrome и нажму Enter, она может открыть приложение с запущенным событием и пропущенным URL-адресом. но если я нажимаю кнопку открытия на странице предварительного просмотра, он всегда открывает магазин приложений независимо от того, установлено приложение или нет Есть мысли?

Я просмотрел все сообщения в Интернете, но безуспешно.

"react-native": "^0.59.5"
"react-native-firebase": "^5.3.1"

pod 'Firebase/Core', '~> 5.20.1'
pod 'Firebase/DynamicLinks', '~> 5.20.1'

Домен на консоли Firebase: https://links.umrgo.com/links

идентификатор комплекта: com.umrgo.www.umr-app-ios

URL Types identifier: links.umrgo.com
URL Types identifier: com.umrgo.www.umr-app-ios


capabilities: applinks:links.umrgo.com

релиз сборки

Я также добавляю FirebaseDynamicLinksCustomDomains с массивом строк https://links.umrgo.com

Некоторые из моих кодов указаны ниже.

   [FIROptions defaultOptions].deepLinkURLScheme = @"com.umrgo.www.umr-app-ios";

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
            options:(NSDictionary<NSString*, id> *)options
{
  BOOL handled = [[RNFirebaseLinks instance]
                  application:application
                  openURL:url
                  options:options
                  ] || [RCTLinkingManager
                        application:application
                        openURL:url
                        options:options
                        ];

  return handled;
}

- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
 restorationHandler:(void (^)(NSArray *))restorationHandler {
  BOOL handled = [[RNFirebaseLinks instance]
                  application:application
                  continueUserActivity:userActivity
                  restorationHandler:restorationHandler
                  ] || [RCTLinkingManager
                        application:application
                        continueUserActivity:userActivity
                        restorationHandler:restorationHandler
                        ];

  return handled;
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
  BOOL handled = [RCTLinkingManager
                  application:application
                  openURL:url
                  sourceApplication:sourceApplication
                  annotation:annotation
                  ];
  return handled;
}


const link = new firebase.links.DynamicLink(`https://www.umrgo.com/publish/${publishId}?publishType=${publishType}&publishId=${publishId}&otherUserUnionId=${currentUserUnionId}&conversationId=${conversationId}`,
        'links.umrgo.com/links').android.setPackageName(conf.GooglePackageName).ios.setBundleId(conf.AppleBundleId).ios.setAppStoreId(conf.AppleAppID);

firebase.links()
    .createShortDynamicLink(link, 'UNGUESSABLE')
    .then((url) => {
        var payload = {
            key: createLinkUniqueKey(conversationId, publishId, currentUserUnionId, publishType),
            url: url,
            publish_id: publishId,
            target_user_unionid: currentUserUnionId,
            conversation_id: conversationId,
            publish_type: publishType
        }
        axios.post(getApiEndpoint(conf.UMRApiUrls.createDynamicLinkRemote), payload, {
            headers: getAuthHeader()
        }).then(response => {
            console(response)
        })
    });

Ниже приведены некоторые снимки:

перенаправление в магазин приложений

попросить открыть приложение

введите ссылку в браузере и нажмите ввод

приложение, открытое с пропущенным URL, если ввести ссылку в браузере

внизу справа - приложение, сборка выпуска

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...