【问题标题】:Google App Engine Channel API with iOS client?带有iOS客户端的Google App Engine Channel API?
【发布时间】:2012-11-06 20:23:41
【问题描述】:

我正在研究使用 Channel API 将消息推送到我的 iOS 客户端。我还没有完全理解它,但唯一的方法是使用触发 Objective-C 方法的隐藏 UIWebView。

这行得通吗?让隐藏的 UIWebView 收听频道消息?频道将如何通知 Web 视图有新消息?收到新消息时如何触发 Objective-C 方法,例如“您收到新消息”的警报?

这种方法有什么缺点吗?

【问题讨论】:

    标签: ios google-app-engine channel-api


    【解决方案1】:

    我正在做相反的事情。我正在使用 Urban Airship 将 iOS 通知发送到我的 iOS 应用程序,它实际上是一个围绕 UIWebView 的 iOS 包装器。

    根据我的经验,GAE 频道并不是特别强大,我注意到没有发送消息,尤其是当您必须重新建立连接时。我想知道当应用程序进入后台时,UIWebView 连接是否会断开。

    【讨论】:

    • 只是好奇,Urban Airship 的可靠性如何?收到通知需要多长时间?我正在使用 Pushwoosh,平均需要 10 多秒才能收到推送。
    • 看起来很快,几乎是即时的,通常不到一秒钟。但我还没有扩大规模。
    【解决方案2】:

    我正在做你所要求的。您需要能够做两件事:从 Objective-C 调用 UIWebView,并从 UIWebView 获取事件以回调到 Objective-C。首先调用 UIWebView 的“stringByEvaluatingJavaScriptFromString”方法。要回调到 Objective-C,你注册一个 Web 视图委托,然后在“shouldStartLoadWithRequest”方法中寻找“假”协议(例如“js-callback”或类似的东西),以便在你的 javascript 中导航“js-callback:informationForObjectiveCToOperateOn”的 iframe。这篇博文解释了这个过程:http://blog.techno-barje.fr/post/2010/10/06/UIWebView-secrets-part3-How-to-properly-call-ObjectiveC-from-Javascript/。

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 2013-11-05
      • 2012-09-20
      • 1970-01-01
      • 2012-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      相关资源
      最近更新 更多