マイミクへ、自分(ビュアー)のアプリの状況や情報を通知する
重要な機能であるアクティビティー。
アクティビティーのリンク先は、基本 home viewになってしまうが
opensocial.Activity.Field.URLを設定して
リンク先を変更してみる。

■アクティビティーの制限
アクティビティーのリンクの飛び先は
基本home viewになるが
opensocial.Activity.Field.URL パラメータを設定することで
変更することができる。
ただしmixiアプリでは
opensocial.Activity.Field.URL に
設定できるURLには制限があるようで
mixiドメインから離れるようなURLは設定ができない。
■requestNavigateTo()の第2引数と gadgets.views.getParams()
gadgets.views.requestNavigateTo() の第2引数にObjectを設定すると
パラメータが渡された状態でViewを切り替えることができる。
※これに関しては、こちらのページなどが参考になります。
1つのviewで複数のページを表示する
このパラメータの値は、gadgets.views.getParams()で取得できるとのことで
1つのview(home)をパラメータの渡していくことで
複数のページを実現するようなことができるようです。
第2引数をしていするとこんなURLになる
http://mixi.jp/run_appli.pl?id=123456&appParams={'p1':'hoge','p2':'hugo','p3':'hege'}
※appParams内容は、escapeされる。
■アクティビティーに パラメータ付のアプリURLを設定する
話はもどって、アクティビティー。
requestNavigateTo() の第2引数を設定した場合に作られる
パラメータ付きURLの書式は、アクティビティーの
opensocial.Activity.Field.URL パラメータに設定することができた。
この方法で、アクティビティーの飛び先にパラメータをつけ
表示を切り替えたりすることができるようです。
次のviewへ渡したいパラメータは
パラメータ名 appParams で
JSON形式で escapeしたもので設定する必要があるようです。
こんなかんじ。
-
var aplid = "123456";
-
var mixipath = "http://mixi.jp/";
-
-
var jsonobj = ""
-
jsonobj += '{"p1":"hoge"';
-
jsonobj += '","p2":"hugo"';
-
jsonobj += '", "p3":"hege"'
-
jsonobj += '"}';
-
var escparam = escape(jsonobj);
-
-
var params = {};
-
params[opensocial.Activity.Field.TITLE] = "アクティビティー文字列";
-
params[opensocial.Activity.Field.URL] = mixipath + 'run_appli.pl?id=' + aplid + '&appParams=' + escparam;
-
-
var activity = opensocial.newActivity(params);
-
opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH, function(response){
-
if (response.hadError()) {
-
alert("has error");
-
} else {
-
alert("success");
-
}
-
});
8月 28, 2009 at 5:39 PM




私をフォローしてください. @quqjp





