在 PhoneGap 中使用协议缓冲区 - iOS

Posted

技术标签:

【中文标题】在 PhoneGap 中使用协议缓冲区 - iOS【英文标题】:Using Protocol buffers in PhoneGap - iOS 【发布时间】:2013-03-17 07:04:14 【问题描述】:

我使用原生应用方法在 ios 中使用了 c++ google protobuf 类,即使用 Xcode、objective c、cocoa 等。

现在,我想迁移到混合应用程序,我已经探索了网络上的选项,根据我的要求,我选择了 PhoneGap 和 Titanium。这将需要我使用 JavaScirpt、html5(根据我的理解仅在 Titanium 中使用 javascript)jQuery 等。

我的问题是,我应该如何从 javascript 访问我的 c++ protobuf 类。 (我没有 JavaScript 方面的专业知识)。

我也对使用哪种混合应用框架持开放态度。

网络开发之王....指导我。

【问题讨论】:

【参考方案1】:

使用PhoneGap,如果有PhoneGap API 当前未公开的电话功能,或者如果您希望访问一些专门的本机算法/功能,那么您需要编写一个插件。

PhoneGap 插件提供了一种标准化机制,用于打包原生代码并通过 JavaScript 访问其功能。请参阅PhoneGap Plugin Development Guide。

我个人认为 PhoneGap 是最好的混合框架,它已经存在了一段时间,有据可查,并且拥有一个健康的社区。​​p>

【讨论】:

感谢您的回答。钛合金呢?他们说我们可以直接使用本机代码。我真的不知道如何 Titanium 在设备上的 VM 中运行 JavaScript,并呈现原生 UI。它不是 HTML5 混合框架——它使用 JavaScript 但不是 HTML。 Titanium 还有一个插件概念,允许您编写与本机模块的绑定。要了解不同的框架,请查看propertycross.com 这太棒了。谢谢! 好吧,我知道这对论坛来说可能是一个糟糕的问题,但请幽默我。 如果我继续使用 Phonegap,两者中的哪一个 - Sencha touch 和 jQuery mobile ,对于初学者来说会更容易。也考虑到我必须添加Phonegap插件的情况 @TusharKoul - 我会选择 jQueryMobile,它更简单 - 并且有大量在线教程。 Sencha Touch 更复杂,功能更强大,但需要很长时间才能学习。【参考方案2】:

这是一个老问题,但您始终可以在 JavaScript 代码中使用 100% JavaScript implementation of ProtoBuf。它运行良好,您甚至可以根据需要预编译 .proto 文件。

在 Cordova 中,更好地创建一个插件,但如果您没有时间或技能来做这件事,那么链接代码也能很好地工作。

【讨论】:

以上是关于在 PhoneGap 中使用协议缓冲区 - iOS的主要内容,如果未能解决你的问题,请参考以下文章

针对 iOS 的 Unity3D 中的协议缓冲区

使用新版本的协议在 PHP 中发送 iOS 推送通知

iOS 网络 - Moya 和协议缓冲区序列化

在 C# 中解析原始协议缓冲区字节流

如何在 iOS 中使用 Phonegap 配置键盘?

如何在 file:/// 协议 (Cordova/Phonegap) 下使用来自 dojo 的自定义构建