iPhone : 当互联网可以访问时,如何与网络服务同步数据?

Posted

技术标签:

【中文标题】iPhone : 当互联网可以访问时,如何与网络服务同步数据?【英文标题】:iPhone : How to sync data with the web-service when internet is reachable? 【发布时间】:2012-02-02 14:08:20 【问题描述】:

我知道如何检查互联网连接。告诉我如何同步应用数据。

当互联网可用时同步如何工作?

我的困惑:

我的应用程序使用网络服务在 iPhone 和现场显示数据。现在我可以在网络可用时更新用户的工作,方法是在用户执行某些任务的同时调用 web-service。

但是当互联网不可用时,我必须将 用户的数据保存在 iPhone 中的本地(比如 SQLite),当互联网可以访问时,我必须 更新服务器上的所有数据

For Example, 

      If internet is reachable, user works on some task and I update the data on server at the dame time.

      But Now internet is not reachable, user works on `N task`. I can not update on server, I have to wait for internet 
      How can I update all task on web-server at time?

所以我的问题是:

How can I update all the data when net is available ?

任何可以帮助我的链接或代码?

【问题讨论】:

你使用可达性类吗? 所以你真正想要的是 SQLlite 速成课程?!? @AnthonyBlake:我想要同步过程的基本知识。 【参考方案1】:

尝试将字段作为isOfflinerecord 放入您的数据库中(如果您正在使用数据库)并且当连接恢复时更新或仅插入这些数据。 这可能是您的第一步。

【讨论】:

【参考方案2】:

这个问题或许能帮到你。使用 Apple 的 Reachability 类。

`How to check for an active Internet connection on ios or OSX?

【讨论】:

我知道如何检查互联网连接。告诉我一些关于同步数据的事情 好吧,这样做的方法是在有互联网时每隔一段时间向服务器发出请求,并下载最新的更新,并将它们保存在本地。根据您在线数据库的大小,您可以一次全部下载。 哦!以及如何在服务器上上传应用数据? 根据服务器的设置方式,您只需发送包含数据的POST 请求。使用 NSURLConnection 是最简单的 HTTP 库,但还有其他的。 @Devang 所以你想要 SQLLite 速成课程和 Web 服务速成课程?【参考方案3】:

使用可达性类,然后你可以设置一个通知器,当网络状态发生变化时通知

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(checkNetworkStatus:) name:kReachabilityChangedNotification object:nil];

hostReachable = [[Reachability reachabilityWithHostName: @"www.google.com"] retain];
[hostReachable startNotifier];


- (void) checkNetworkStatus:(NSNotification *)notice

    // called after network status changes

    NetworkStatus hostStatus = [hostReachable currentReachabilityStatus];
    switch (hostStatus)


    case NotReachable:
    
        break;

    
    case ReachableViaWiFi:
    

        break;

    
    case ReachableViaWWAN:
    

        break;
    



【讨论】:

我知道如何检查互联网连接。告诉我一些关于同步数据的事情。 多次运行你的网络服务? @Devang 如何同步数据取决于您的服务器和传输的内容。如何做到这一点完全取决于您,如果您询问 10 位开发人员,您可能会得到 10 种不同的解决方案。我建议您考虑一下并提出自己的解决方案,因为这是一个相当广泛的问题。 @NickBull :我没有任何基础知识。我只是要求基本知识。 @Devang 说真的,如果你不知道从哪里开始,那么我认为你需要开始学习更多的编程基础知识

以上是关于iPhone : 当互联网可以访问时,如何与网络服务同步数据?的主要内容,如果未能解决你的问题,请参考以下文章

docker端口映射与容器互联

使用 iphone 可访问互联网

端口映射与容器互联

当 iPhone 被锁定时,非原生 Apple Watch 应用程序可以工作吗?

如何在网络上检测 iPhone?

第七章 端口映射与容器互联