Reaction本机IOS Safari无法打开页面,因为该地址在有效登录后无效 [英] React Native iOS "Safari cannot open the page because the address is invalid" after valid login

查看:0
本文介绍了Reaction本机IOS Safari无法打开页面,因为该地址在有效登录后无效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

成功登录后获取以下内容。登录流程在Android上运行正常,正确返回令牌、刷新等...

"Safari无法打开页面,因为地址无效"

Screen Recording of Error

Auth0回调配置

Info.plist

...
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>None</string>
        <key>CFBundleURLName</key>
        <string>auth0</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
        </array>
    </dict>
</array>
...

AppDeligate.m

...
#import <React/RCTLinkingManager.h>
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
  return [RCTLinkingManager application:application openURL:url
                      sourceApplication:sourceApplication annotation:annotation];
}
...

推荐答案

我遇到了同样的问题(在使用Auth0时,答案取决于他们在这里提供的解决方案-https://auth0.com/docs/quickstart/native/react-native)

另外,此处的另一个答案中的一些输入-"Safari cannot open the page because the address is invalid" appearing when accessing Branch link with app uninstalled

最终归结为

  1. 从iOS 9.2开始,Apple不再正式支持深度链接的URI方案,强烈建议开发人员实现通用链接,以便在iOS上获得同等功能
  2. 若要克服此问题,您必须启用此应用程序链接才能工作。一种选择是(检查链接的堆栈答案)希望发生这种情况的服务提供商将提供通用链接。

另一个选项(下面的代码片段)是添加"URLSolutions"

#import <React/RCTLinkingManager.h>

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
{
  return [RCTLinkingManager application:app openURL:url options:options];
}

第二步

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>None</string>
        <key>CFBundleURLName</key>
        <string>auth0</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
        </array>
    </dict>
</array>

这就是我解决这个问题的方法(在使用Auth0库时,但无论您使用的是什么库,都应该有类似的库可用)。这基本上克服了苹果/iOS对应用程序链接的限制,这就是你得到原始Safari错误的原因。

这篇关于Reaction本机IOS Safari无法打开页面,因为该地址在有效登录后无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆