2

我正在尝试从我的应用程序中打开 prezi.com 演示文稿。

NSURL *url = [ [ NSURL alloc ] initWithString: @"prezi://open?oid=ftv9hvziwqi2" ];
[[UIApplication sharedApplication] openURL:url];

这段代码会打开应用程序,但不会打开演示文稿。当您在 ipad 上访问此链接时,您会看到一个带有打开演示文稿的链接的页面。

http://prezi.com/ftv9hvziwqi2/coca-cola-companya/

但我可以找出在 prezi 应用程序中打开演示文稿的正确 URL。而且我在 prezi 网站上也找不到任何文档。

4

2 回答 2

2

看起来 prezi 应用程序没有可公开访问的 url 方案(即 prezi:// url):

http://community.prezi.com/prezi/topics/does_ipad_prezi_viewer_have_a_url_scheme_so_other_apps_can_launch_it_and_open_a_specific_prezi_via

如果您查看网络链接的结构(确实可以正确打开演示文稿),最后会出现“&details=XYZ=”字段,其中 XYZ 是几百个随机字符。

您可以尝试输入完整的网址,但我怀疑这将是一个脆弱的解决方案,因为它可能是基于您的用户帐户和/或您访问它的时间的随机数。

最好的办法可能是在上面链接的社区委员会上提出另一个请求。

于 2012-05-08T10:16:18.777 回答
2

我也是,对此很感兴趣,所以我稍微研究了一下。

如果您在 iPad 上访问超链接 (http://prezi.com/ftv9hvziwqi2/coca-cola-companya/),它会为您提供在 Prezi 应用程序中打开演示文稿所需的链接。

就是这个:-

prezi://open?oid=ftv9hvziwqi2&details=eyJzaXplIjogMTIzMTE2MywgInRva2VuIjogIiIsICJ0aHVtYl91cmwiOiAiaHR0cDovLzA0MDEuc3RhdGljLnByZXppLmNvbS9wcmV2aWV3LzgvOS83L2M3M2U3NTU5YTE3ZjdkMjgyMjc1NGIwOWVkNmY2ZDJhNjNkZmFfMV92OTkucG5nIiwgImF1dGhvciI6ICJBbm5pZSBOYW0iLCAidGl0bGUiOiAiQ29jYSBDb2xhIENvbXBhbnkuQSIsICJsYXN0bW9kIjogIjA4IEFwcmlsIDIwMTIiLCAib2lkIjogImZ0djlodnppd3FpMiIsICJkZXNjIjogIkludGVybmF0aW9uYWwgbWFuYWdlbWVudCBwbGFuIn0=

原来有第二个参数叫做“details”,它是base64编码的。当我解码它时,细节如下所示:-

{"size": 1231163, "token": "", "thumb_url": "http://0401.static.prezi.com/preview/8/9/7/c73e7559a17f7d2822754b09ed6f6d2a63dfa_1_v99.png", "author": "Annie Nam", "title": "Coca Cola Company.A", "lastmod": "08 April 2012", "oid": "ftv9hvziwqi2", "desc": "International management plan"}

我猜这个 'details' 参数是必需的,所以尝试创建自己的 base64 编码。祝你好运!

编辑:一个更简单的可能性是将用户引导到 safari。这样他们仍然可以打开 Prezi 应用程序,而您不必自己创建任何奇怪的细节。

NSURL *url = [ [ NSURL alloc ] initWithString: @"http://prezi.com/ftv9hvziwqi2/coca-cola-companya/" ];
[[UIApplication sharedApplication] openURL:url];
于 2012-05-08T09:56:05.857 回答