mixiアプリ アクティビティーのリンク先を変える

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

d01_01_3

■アクティビティーの制限

アクティビティーのリンクの飛び先は
基本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したもので設定する必要があるようです。

こんなかんじ。

JavaScript:
  1. var aplid = "123456";
  2. var mixipath = "http://mixi.jp/";
  3.  
  4. var jsonobj = ""
  5. jsonobj += '{"p1":"hoge"';
  6. jsonobj += '","p2":"hugo"';
  7. jsonobj += '", "p3":"hege"'
  8. jsonobj += '"}';
  9. var escparam = escape(jsonobj);
  10.  
  11. var params = {};
  12. params[opensocial.Activity.Field.TITLE] = "アクティビティー文字列";
  13. params[opensocial.Activity.Field.URL] = mixipath + 'run_appli.pl?id=' + aplid + '&appParams=' + escparam;
  14.  
  15. var activity = opensocial.newActivity(params);
  16. opensocial.requestCreateActivity(activity, opensocial.CreateActivityPriority.HIGH, function(response){
  17.     if (response.hadError()) {
  18.         alert("has error");
  19.     } else {
  20.         alert("success");
  21.     }
  22. });

Bookmark and Share





blog.quq.jp