2

iOS アプリに動的リンクを追加しています。アプリがインストールされている場合、動的リンクは iOS 8 以降で適切に機能します。アプリがインストールされていない場合、iOS 8 シミュレーターで、インストール後および最初の起動時に、

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    FIRDynamicLink *dynamicLink = [[FIRDynamicLinks dynamicLinks] dynamicLinkFromCustomSchemeURL:url];
    if (dynamicLink) {
        [self handleIncomingDynamicLink:dynamicLink];
        return YES;
    }

    return NO;
}

このメソッドが呼び出され、既にインストールされている場合と同様にすべてが正常に機能します。

しかし、問題は iOS 9 および 10 のシミュレーターとデバイス、および iOS 8 デバイスにあります。iOS 9および10のガイドによると、

- (BOOL)application:(UIApplication *)app
            openURL:(NSURL *)url
            options:(NSDictionary<NSString *, id> *)options {

}

このメソッドは、アプリが初めてインストールされて開かれていない場合に呼び出す必要がありますが、インストール後には呼び出されません。また、iOS 8 シミュレーターで呼び出された openURL メソッドは、iOS 8 デバイスでは呼び出されません。

[FIRApp configure]と呼ばれます。そして、CustomURLScheme設定を変更してテストしました。iOS 8 では、設定しなくても動作しまし[FIROptions defaultOptions].deepLinkURLSchemeた。しかし、iOS 8のケースを使用して、構成しCustomURLScheme、そのスキームでその設定を追加しました[FIROptions defaultOptions].deepLinkURLSchemeが、その行でもiOS 8シミュレーターのみが機能しました。

また、インストール後の最初の起動では機能しませんが、インストール後にリンクをクリックすると、うまく機能します。

[更新: iOS のバージョンをさらに変更し、シミュレーターかデバイスかをテストしました]

iOS8.3 デバイスがインストールされていない -> 動作しない

iOS8.4 シミュレーターがインストールされていない -> 動作する

iOS8.3 シミュレーターがインストールされていない -> 動作する

iOS9.1シミュレータ未インストール→動作

iOS9.2 シミュレーターがインストールされていない -> 動かない

インストール済み -> 動作しない

iOS9.3.2 デバイスがインストールされていない -> 動作しない

インストール -> 動作

iPhone 5s iOS 9.3 シミュレーターがインストールされていない -> 動作する

インストール済み -> 動作しない

iOS10.1シミュレータ未インストール→動作

インストール -> 動作

4

0 に答える 0