読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

ionic のsalesforceテンプレートが動かない場合

文章追記中

$ ionic start mock salesforce
$ cd mock/
$ ionic platform remove ios
$ ionic plugin rm com.salesforce
$ ionic platform add ios@4.2.0
$ ionic plugin add https://github.com/forcedotcom/SalesforceMobileSDK-CordovaPlugin#v4.3.1 --force

【必要な人向け】既存システムを導入する

ずっとforce-serverで開発してたけど、いざiosでやったら動かなかった……なんて場合は、以下のように対処します。

$ cp -fr {{YOUR_ORIGIN_APP_ROOT}}/www {{NEW_APP_ROOT}}

inAppBrowser Pluginを使ってionicで外部のページを表示する

inAppBrowser Pluginを使ってionicで外部のページを表示する方法です。

実際のところ

ionic v1の環境を想定します。
ngCordovaとcordova-plugin-inappbrowserが必要です。

$ bower install ngCordova
$ cordova plugin add cordova-plugin-inappbrowser

入ったngCordovaをwww/index.htmlで読み込み

    <!-- cordova script (this will be a 404 during development) -->
    <script src="cordova.js"></script>
    <script src="lib/ngCordova/dist/ng-cordova.js"></script> 

ボタンは以下のような感じ。

<a class="button" ng-click="goPage()">ページを表示</a>

controllerでは"$cordovaInAppBrowser"経由で各種動作を行います。

var appControllers = angular.module('starter.controllers', [ "ngCordova", ...]);

appControllers.controller('HogeCtrl', function ($scope, ... , $cordovaInAppBrowser) {
    // ...

    //カレンダー表示
    $scope.goPage = function() {
	var options = {
	    location: 'yes',
	    clearcache: 'yes',
	    toolbar: 'yes',
	    closebuttoncaption: '閉じる'
	};
	var url = YOUR_LINK;
	
	$cordovaInAppBrowser.open(url, '_blank', options)
            .then(function(event) {
		// success
            })
            .catch(function(event) {
		// error
            });
    };

gitリポジトリから導入するタイプのionic pluginで特定のタグから引っ張りたい場合

Git

gitリポジトリから導入するタイプのionic pluginで特定のタグから引っ張りたい場合


まともに管理されていれば、タグでバージョンがわかるはずです。

実際のところ

何かとお騒がせのSalesforceMobileSDK-CordovaPluginのうち、
執筆時点でメジャーバージョンが一個おちた4.3.1を入れるケースは以下の通り。
何が有るかわからんので、ちゃんと先に消しておきましょう。

$ ionic plugin rm com.salesforce
$ ionic plugin add https://github.com/forcedotcom/SalesforceMobileSDK-CordovaPlugin#v4.3.1 --force

"ionic state reset"で環境を一気に更新する

$ ionic state reset

をすると、一気に環境を更新できます。
最新版も引っ張ってきてくれるため、ゴチャゴチャして訳が分からなくなった際は使うと色々はかどります。

git checkoutで特定のコミットまで戻る/特定ブランチの先頭まで戻る

Git

コミットID XXXYYYZZZまで戻りたい場合

$ git checkout XXXYYYZZZ

YOURBRUCHの先頭まで戻りたい場合。
先程のコミットID指定のやつで同じブランチに潜っていたとしても大丈夫です。

$ git checkout YOURBRUCH

参考もと

  • "git checkout --help"

jQueryなしでJSONデータを特定のURLにPOSTする

今回はjQuery無しでJSONデータを送る方法です。

実際のところ

今回はIFTTTのmakerに対し、JSONでパケットを叩きつける方法を考えます。

<html>
<body>
<script>
var postIFTTT = function () {
  xhr = new XMLHttpRequest();
  const appname = "{{YOUR_IFTTTAPP_NAME}}";
  const key     = "{{YOUR_KEY}}";
  const url     = "https://maker.ifttt.com/trigger/" + appname + "/with/key/" + key;
  xhr.open("POST", url, true);
  xhr.setRequestHeader("Content-type", "application/json");
  xhr.onreadystatechange = function () { 
      if (xhr.readyState == 4 && xhr.status == 200) {
          var json = JSON.parse(xhr.responseText);
          console.log(json.email + ", " + json.password)
      }
  }
  var data = JSON.parse('{"value1" : "02/20/2017" , "value2" : "Some" , "value3" : "Thing" }');
  xhr.send(data);
}
</script>
<button onclick="postIFTTT()">GO_IFTTT</button>
</body>
</html>

GO_IFTTTのボタンを押すと、"maker"のトリガーが起動します。

参考もと

stackoverflow.com

IFTTT経由でGoogle Calenderのクイック追加機能を使ってみる

IFTTT経由でGoogle Calenderのクイック追加機能を使ってみる

f:id:shuzo_kino:20170214212853p:plain

トリガはMakerとしておくと、以下のような感じでしょうか?
f:id:shuzo_kino:20170214213659p:plain

{{Value1}}  {{Value2}} を {{Value3}}
2017/2/16  ごはん を たべる 

f:id:shuzo_kino:20170214214113p:plain
実行すると、しばらくして以下のように追記されます。便利ですね。
f:id:shuzo_kino:20170214214117p:plain