我正在考虑使用Channel API将消息推送到我的iOS客户端。我还没有完全包裹它,但唯一的方法是使用隐藏的UIWebView来触发Objective-C方法。
这会有用吗?让隐藏的UIWebView监听频道消息?如何通过渠道通知网络视图新消息?收到新邮件时如何触发Objective-C方法,例如提示“您收到了新邮件”。?
这种方法有什么缺点吗?
答案 0 :(得分:3)
我正在做相反的事情。我正在使用Urban Airship将iOS通知发送到我的iOS应用程序,这是一个围绕UIWebView的iOS封装。
根据我的经验,GAE频道并不是特别强大,我注意到邮件没有被发送,特别是当您必须重新建立连接时。我想知道当应用程序进入后台时UIWebView连接是否会断开连接。
答案 1 :(得分:0)
我正在做你要问的事。您需要做两件事:从Objective-C调用到UIWebView,从UIWebView获取事件以回调到Objective-C。首先,您调用UIWebView的“stringByEvaluatingJavaScriptFromString”方法。要回调到Objective-C,您注册一个Web视图委托,然后在“shouldStartLoadWithRequest”方法中查找“假”协议(例如“js-callback”或类似的东西),以便在您的javascript中导航一个iframe到“js-callback:informationForObjectiveCToOperateOn”。此博客文章解释了该过程:http://blog.techno-barje.fr/post/2010/10/06/UIWebView-secrets-part3-How-to-properly-call-ObjectiveC-from-Javascript/。