--------

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2012-04-08

【Unity】 各プラットホームでのURLジャンプの方法

Unity[http://unity3d.com/japan]

鶏キングダムでゲームからTwitterにゲームレコードの呟きができるように対応した際に
TwitterのOAuth認証を使用せずにURLに直接つぶやきの内容を含めて飛ばそうとしたら
結構苦戦してしまったので、備忘録を兼ねて対応方法を記述して行きます。


呟きの内容を含めてTwitterにURLジャンプする場合は、次のテキストのtweetにつぶやきの文字列を入れてあげればよいです。
string URL = "https://twitter.com/intent/tweet?text=" + WWW.EscapeURL (tweet)

[WebPlayer]
Application.OpenURL(URL);

[iOS]
Application.OpenURL(URL);

[Android]
AndroidJavaClass classPlayer = new AndroidJavaClass("com.unity3d.classPlayer.UnityPlayer");
AndroidJavaObject objActivity = classPlayer.GetStatic("currentActivity");
AndroidJavaClass classUri = new AndroidJavaClass("android.net.Uri");
AndroidJavaObject objURL = classUri.CallStatic( "parse", URL );
AndroidJavaObject objIntent = new AndroidJavaObject("android.content.Intent", "android.intent.action.VIEW", objURL );

objActivity.Call( "startActivity", objIntent );

objIntent.Dispose();
objURL.Dispose();
classUri.Dispose();
objActivity.Dispose();
classPlayer.Dispose();


Androidだけ、openURLで飛べなかったのでJavaの機能を使って飛ぶようにしました。
logcatを使ってデバッグしてましたが、Java関係のクラスはエラーが一様にundefineで出力されるので
非常にデバッグし辛かったです。
この当たりの効率化は今後の課題点となりそうです。
スポンサーサイト

theme : プログラミング
genre : コンピュータ

コメントの投稿

管理者にだけ表示を許可する

Uriクラスのメソッドではいかがですか?

はじめまして。
WWW.EscapeURLではなぜか半角スペースをエスケープしてくれず「+」とかに置き換わったりしました。
Uri.EscapeDataString(tweet);
で行ってみても解決しませんか?
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。