1

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

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

这种方法有什么缺点吗?

4

2 回答 2

3

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

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

于 2012-11-07T05:24:15.837 回答
0

我正在做你所要求的。您需要能够做两件事:从 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/ 。

于 2012-12-05T20:31:11.710 回答