我一直在尝试构建一个与MS-ActiveSync Exchange通信的应用程序。我被困在供应部分。我需要发送一个正文中包含 WBXML 内容的 HTTP 请求。但是我在任何地方找不到任何可以将xml转换为wbxml以进行主动同步的东西。
有一些基于 C 的库可用,例如 wbxml2,但我可以使用它们进行主动同步吗?库中没有提供 MS-Activesync Exchange 文档中提到的代码页。请帮忙!!
使用 libwbxml。该软件包具有 xml2wbxml 和 wbxml2xml。包括代码页。
将其另存为证明.xml:
<?xml version="1.0"?>
<!DOCTYPE ActiveSync PUBLIC "-//MICROSOFT//DTD ActiveSync//EN" "http://www.microsoft.com/">
<Provision xmlns="Provision:">
<Policies>
<Policy>
<PolicyType>MS-WAP-Provisioning-XML</PolicyType>
</Policy></Policies></Provision>
然后:
xml2wbxml -a prov.xml -o prov.wbxml
您可以将 wbxml 作为文本进行操作。在 https://code.google.com/p/tz-push/
在 JavaScript 中:
prov.wbxml = string.fromCharCode(0x03,0x01,0x6A,0x00,0x00,0x0E,0x45,0x46,0x47,0x48,0x03,0x4D,0x53,0x2D,0x57,0x41,0x50,0x2D,0x50,0x72,0x6F,0x76,0x69,0x73,0x69,0x6F,0x6E,0x69,0x6E,0x67,0x2D,0x58,0x4D,0x4C,0x00,0x01,0x01,0x01,0x01)
wbxml2xml 和 xml2wbxml 是 libwbxml 附带的命令行程序。我对IOS开发一无所知。
看看它是用 js 编写的 xml 到 wbxml 转换器 https://tz-push.googlecode.com/files/towbxml.js。(可以在 Thunderbird/Workspace 或 Firefox/Sratchpad 中运行。我知道这不是您想要的,但代码可能会为您指明正确的方向。它使用萨克斯。因此,如果您有可用的 sax 解析器应该易于移植。