首页 > 解决方案 > 在 iOS 上使用带有不良网络的 AWS Amplify API

问题描述

我使用 AWS Amplify API 和 graphql 将云服务添加到我的 ios 应用程序中。这是开箱即用的,但是在测试时,如果应用程序的用户断开互联网连接,我会遇到麻烦。

测试时,我每秒运行一次下面的代码。

func awscreateTodo() {
        let todo = Todo(name: "my first todo", description: "todo description")
        Amplify.API.mutate(request: .create(todo)) { event in
            switch event {
            case .success(let result):
                switch result {
                case .success(let todo):
                    print("Successfully created the todo: \(todo)")
                case .failure(let graphQLError):
                    print("Failed to create graphql \(graphQLError)")
                    
                }
            case .failure(let apiError):
                print("Failed to create a todo", apiError)
            }
        }
    }

然后我断开设备与互联网的连接。一段时间后它会抛出以下错误。

Failed to create a todo APIError: The Internet connection appears to be offline.
Recovery suggestion: The Internet connection appears to be offline.
Caused by:
Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={_kCFStreamErrorCodeKey=8, NSUnderlyingError=0x6000002426a0 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=8, _kCFStreamErrorDomainKey=12}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <3B9BEC23-4B95-4C81-B56F-40C421142923>

我应该如何处理这个问题?有没有办法可以重新连接服务甚至捕获错误并处理它?如果我重新打开网络,它没有帮助。它不会重新启动。

标签: swiftapiamplify

解决方案


推荐阅读