带有iOS客户端的Google App Engine Channel API?
Posted
技术标签:
【中文标题】带有iOS客户端的Google App Engine Channel API?【英文标题】:Google App Engine Channel API with iOS client? 【发布时间】:2012-11-06 20:23:41 【问题描述】:我正在研究使用 Channel API 将消息推送到我的 ios 客户端。我还没有完全理解它,但唯一的方法是使用触发 Objective-C 方法的隐藏 UIWebView。
这行得通吗?让隐藏的 UIWebView 收听频道消息?频道将如何通知 Web 视图有新消息?收到新消息时如何触发 Objective-C 方法,例如“您收到新消息”的警报?
这种方法有什么缺点吗?
【问题讨论】:
【参考方案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/。
【讨论】:
以上是关于带有iOS客户端的Google App Engine Channel API?的主要内容,如果未能解决你的问题,请参考以下文章
Google API - Android BigQuery 客户端的应用级授权
带有 Node.js/Socket.IO 服务器和客户端的 Phonegap 应用程序中的 Android 的 WebSockets
在 Firebase 中,使用 FlutterFire,如何在 iOS 上初始化辅助应用程序?带有选项的 InitializeApp 给出 GOOGLE_APP_ID 错误