2

我的要求是处理 iOS 应用程序上的通用链接。但动态 link.url 似乎返回如下错误 -

"@"error" : @"unauthorized user: username=social-app-invite methodName=/FirebaseLookupService.LookupAppsSummary protocol=loas securityLevel=integritY"

当我从笔记应用程序中单击动态链接(https://****.app.goo.gl/****)时,我的 ios 应用程序将被定向到以下回调 -> 在这个函数中我有以下代码 -

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler
{
NSURL *incomingURL = userActivity.webpageURL;
if(incomingURL){
    BOOL handled = [[FIRDynamicLinks dynamicLinks]
                    handleUniversalLink:incomingURL
                    completion:^(FIRDynamicLink * _Nullable dynamicLink,
                                 NSError * _Nullable error) {
                        if (dynamicLink.url){`
                           **HANDLE THE DYNAMIC LINK HERE**
                        }else{
                           **CODE IS RETURNING ERROR** NSLog(@"error %@",error);
                        }
                    }];
    return handled;
}else{
    return false;
}

}

我已正确遵循 firebase 文档。请建议这里出了什么问题?

4

3 回答 3

3

我也遇到了这个问题。handleUniversalLink()返回总是假的。就我而言,我的链接参数不仅包含 URL,还包含参数。所以最后的动态链接里面有两个问号。

https://app-id.app.goo.gl/?link=https://www.domain.com/resource?someParam=someValue&ibi=com.domain.appname

如果我用百分比转义来转义内部 URL(链接参数),它工作正常。

https://app-id.app.goo.gl/?link=https%3A%2F%2Fwww.domain.com%2Fresource%3FsomeParam%3DsomeValue&ibi=com.domain.appname

于 2016-12-09T14:07:00.557 回答
0

我能够获得动态链接 url 值。我的代码中有一个额外的检查,如下所示 -

if (launchOptions != nil) {
[FIROptions defaultOptions].deepLinkURLScheme = URL_SCHEME;

}

由于此检查,URL 方案从未被初始化,因此出错。

我在上面发布的代码应该返回正确的动态链接 url。

谢谢。

于 2016-10-05T11:31:45.983 回答
0

试试这个。

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler
{
    NSURL *url = userActivity.webpageURL;


    FIRDynamicLinks *links = [FIRDynamicLinks dynamicLinks];
    if([links matchesShortLinkFormat:url])
    {
        [links resolveShortLink:url completion:^(NSURL * _Nullable url, NSError * _Nullable error)
        {
                NSString *message =
                [NSString stringWithFormat:@"Deep link  \n:%@",
                 url];

                [[[UIAlertView alloc] initWithTitle:@"Deep-link Data"
                                            message:message
                                           delegate:nil
                                  cancelButtonTitle:@"OK"
                                  otherButtonTitles:nil] show];



        }];

        return YES;
    }
 return false;
}
于 2016-09-26T07:17:13.067 回答