反省を込めて
状況
- angularJsを利用
- アナリティクスの計測などを分けるため、Webブラウザ用のページとアプリのwebview用のページを別URLで持っていた
- {{domain}}/web/hogehogeと{{domain}}/app/hogehogeみたいな
- viewファイルを別管理するのはめんどいので見た目変わらないとこはtemplate化
- ng-clickのfunctionでページ遷移を管理
js
//isApp:boolean アプリかどうか
$scope.href = function(url){
if(isApp){
location.href = "/app" + url;
} else {
location.href = "/web" + url;
}
}
view
<a href="javascript:void(0)" ng-click="href('/hogehoge')">/hogehogeへ</a>
問題点
-
google analyticsのページ解析が数字出してくれない
ページ解析レポートでは、後続のページへの参照 URL として表示されるページの回数からページ要素のクリック数が推定されます。
hrefのリンク先ページのページビューのうち、参照URLがこのページのものを計測してる模様
href="javascript:void(0)"、あかんやつ。。
修正方法
- ng-hrefでリンク先を生成するfunction呼べばよかった。。。
- ていうかng-hrefでfunction動くもんだと思ってなかったしその発想がなかった…
js
//isApp:boolean アプリかどうか
$scope.setLink = function(url){
if(isApp){
return "/app" + url;
} else {
return "/web" + url;
}
}
view
<a ng-href="{{setLink('/hogehoge')}}">/hogehogeへ</a>
ページ解析動いた\(^o^)/
感想
今までこれで動いてたからなんとなくこうやってたけど、そもそもこのやり方どうなんだろ・・?
なんかいい方法あれば教えて下さい