2012-05-08 13 views
2

私は自分のアプリからプレゼンテーションを開こうとしています。アプリからプレジを開く

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

このコードはアプリケーションを開きますが、プレゼンテーションは開きません。あなたのipadでこのリンクを訪問すると、あなたはリンクが開いたプレゼンテーションを持つページを取得します。

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

しかし、私はpreziアプリでプレゼンテーションを開くための正しいURLを把握することができます。そして、私はこれからpreziサイトのいずれかのドキュメントを見つけることができません。

答えて

2

私もこれに興味があったので少し調べました。

iPadのハイパーリンク(http://prezi.com/ftv9hvziwqi2/coca-cola-companya/)にアクセスすると、Preziアプリでプレゼンテーションを開くために必要なリンクが表示されます。

これがそれである: -

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

それはbase64エンコードである「詳細」と呼ばれる2番目のパラメータは、そこにある判明します。私はそれをデコードする場合の詳細は次のようになり、: - 私はこれを推測している

{"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"} 

「詳細」パラメータが必要なので、あなた自身とそれをコードするBASE64を作成してみています。がんばろう!

編集:もっと簡単な方法は、ユーザーをサファリに誘導することです。そうすれば、彼らはまだPreziアプリを開くことができ、自分で奇妙な詳細を作成する必要はありません。

NSURL *url = [ [ NSURL alloc ] initWithString: @"http://prezi.com/ftv9hvziwqi2/coca-cola-companya/" ]; 
[[UIApplication sharedApplication] openURL:url]; 
+0

最初の部分をありがとう。 preziはapiを持っていないので、私はjsonオブジェクトでどのパラメタが必要であるか把握しなければなりません。あなたの2番目の選択肢は実際には動作しますが、オフラインのときには開きません。 – Melvin

+0

oidパラメータのみを指定しても機能しますが、アプリケーション内でタイトル、説明、または画像は表示されません。プレゼンテーションはokeyから始まります。しかし、すべてのパラメータをemtpyにすると、アプリ内のタイトル、説明、画像が表示されません。だから、私たちは動的にオブジェクトを作成することはできませんAPIをせずに。 – Melvin

+0

apiがなければ動的にするのは難しいですが、方法があります。 **静的:** iPadをお持ちの場合は、プレゼンテーション用のhttp URLにアクセスし、prezi:// URLをコピーしてアプリで使用してください。同じ1つまたは2つのプレゼンテーションを表示する必要がある場合は、jsonオブジェクトは常に同じものになります。**ダイナミック:**常に新しいプレゼンテーションにユーザーを誘導する場合は、ipad http URLを訪問してprezi:// URLのページをスクラップするオンラインのPHPスクリプトを作成します。それは完全に動的な解決策になります。 –

2

preziアプリは(それがpreziです:// URL):公的にアクセス可能な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は数百のランダムな文字です。

あなたは完全なURLを入れてみることもできますが、おそらくユーザーアカウントやアクセスした時のノンスなので、脆弱な解決策になると思われます。

おそらく最も良いことは、上にリンクされたコミュニティボードに別のリクエストを出すことです。

+0

さて、リアムは私をパンチに殴った。その詳細要素は間違いなく必要です。 – Freney

+0

+1そのトピックへのリンクを見つける。私はどこでも見つけられなかった! –

関連する問題