ionic async awaitでAPIへ同期的にリクエスト

やりたいことはタイトルのとおり。初めてでハマったのでコードをメモしておく。 import { Component } from '@angular/core'; import { Http, Headers,RequestOptions } from '@angular/http' import 'rxjs/add/operator/map' import 'rxjs/add/operator/cat…

ionic3 aws s3 へ画像や動画アップロード

ざっくり以下の流れで実装できた。 ・awsのアクセスキーとシークレットキーを入手 ・s3のcorsの設定 ・aws-sdk(javascript版)を入手 ・ionic 処理実装アクセスキーとシークレットキーをコードに埋め込むのは現実的ではないが今回は動作確認という意味でそ…

javascript input file で選択した画像をBlobURLで表示

最近、やることが多いのでひな形をメモしておく <input type="file" id="upload_file" /> <script> window.addEventListener('load', function() { var upload_file = document.getElementById('upload_file'); upload_file.addEventListener('change', function() { var blobUrl = window.URL.createObject…

ionic3 localの動画をvideoタグで再生

はじめに 今回やりたかったことは以下 ・フォトライブラリから選択した動画をvideoタグで再生 ・カメラを起動して撮影した動画をvideoタグで再生基本的な方針は以下に書いた画像の場合と同じ http://kimagureneet.hatenablog.com/entry/2018/09/05/1653231. …

cordova plugin で not defined in Pluginエラー @iOS(swift)

swiftでcordovaプラグイン作ったら以下のエラー。 何度見直しても原因がわからずいたところ、swiftのバージョンをxcodeで直接いじっていたのが問題だった。 ERROR: Method 'my_method:' not defined in Plugin 'MyPlugin' FAILED pluginJSON = ["MyPlugin188…

ionic3 localの画像をimgタグに表示

はじめに cordovaでのアプリ開発。webviewでimgタグにローカルの画像のパスを指定するだけと思ってたけど意外にはまったのでメモしておく。今回やりたかったことは以下 ・端末のフォトライブラリから選択した画像をimgタグに表示 ・カメラを起動して撮影した…

Javascriptでcss(style)をまとめて一括セットする方法メモ

大した話じゃないけどいつも忘れるのでメモ1つずつちまちまセットしてる var div = document.createElement('div') div.style.color = 'red' div.style.fontSize = '18px' div.style.fontWeight = 'bold' ・・・まとめて一括で設定もできた var div = docume…

cordova8 で plugin addエラー 最低限のpackage.jsonが必要

cordova7まではpluginのpackage.jsonなしでもプラグインの追加を行えた。cordova8からはpackage.jsonの中も見てるようで最低限のpackage.jsonが必要になったぽい。package.json { "name": "my_plugin", "version": "0.0.1", "description": "" }試したらname…

【ionic3】iOSでvideoインライン再生

ionic3でvideoタグのインライン再生しようとしたら上手くいかなかったのでそのときのメモHTMLはこんな感じ <video muted="true" preload="auto" webkit-playsinline playsinline controls src="assets/imgs/sample.mp4"> </video>調べてみると wkwebview の設定で allowsInlineMediaPlayback という設定があった。 CDVWKWebViewEngine.m を見てると allowsInlineMediaPlayback …

【Ionic3(Angular)】Componentを作成してHTMLを分割する方法まとめておく

はじめに 今回やりたかったことは以下のようなコードの「リスト」の部分が複雑になったので別ファイルに分けたいということでした。AngularのComponentを作成すれば実現できるようでIonicコマンドでComponentを作成できるのでこちらの使い方をメモしておく。 <ion-content></ion-content>…

Ionic3とAngularのバージョン確認

IonicはCLIとフレームワークとでそれぞれバージョン違うし。Angularはバージョンどんどん上がってる印象なので。自分がそれぞれどのバージョン使ってるかわからなくなってきた。CLIのバージョン $ ionic -v 3.20.0FWのバージョンはpackage.jsonを見るとわか…

CircleCI2、Fastaneでの2段階認証が設定されたアップルIDでのアプリアップロードを諦めた話

fastlaneのドキュメントに2段階認証のことものってた https://docs.fastlane.tools/best-practices/continuous-integration/環境変数 FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD に2段階認証の場合はAPPパスワードを発行してセットするように書いてあっ…

ionic(cordova) CircleCI2とFastlaneでiOSアプリをデプロイゲートにアップロードする手順まとめ

はじめに 今回やりたかったことは ・ionicで開発したiOSアプリをCircleCI2上でAdHoc版ビルド ・ビルドしたアプリをデプロイゲートへアップロード ・Fastlane Matchは使わず手元にある証明書とプロビジョニングプロファイルで行う ビルドとアップロードはFast…

シンボリックリンクを相対パス指定で作る

基本 $ ln -s 実際のパス リンクこんなファイル構成でdir2/aaa.txtにdir1/aaa.txtへのシンボリックリンクを貼りたい dir1/aaa.txt dir2これでいけると思ったらNG $ ln -s dir1/aaa.txt dir2/aaa.txtこれならOK $ ln -s ../dir1/aaa.txt dir2/aaa.txtリンクか…

ionic(cordova) iOSでのtwitterログインで403 Forbidden の対応

はじめに アプリのコードいじってないのにアプリで実装していたTwitterログインができなくなった。使っていたプラグインはこちら https://github.com/ManifestWebDesign/twitter-connect-pluginエラー内容 error: Request failed: forbidden (403) Error Dom…

【Android Studio】layoutディレクトリ追加

手動で作成する機会ってあまりないのだろうか 1. resディレクトリで右クリック > New > Android resource directory 2. Resource typeをlayoutにあわせてAvailable qualifiersからCountry Codeを追加 3. Mobile coutry codeに440を入力してOKボタン 4. layou…

cordova-androidで生成したプロジェクトにSupport Libraryを追加

cordova-androidのバージョンは7.1プロジェクト作成 $ cordova-android/bin/create android_demo test.android_demoGradle Scripts > build.gradle (Module: app) dependencies { implementation fileTree(include: '*.jar', dir: 'libs') // SUB-PROJECT DE…

phpでローカルでwebサーバーを起動して別端末からアクセスする

php

macでのみ検証した。ビルドインwebサーバーというらしい。あくまで開発支援のための機能なので本番では使わないでねってマニュアルに書いてあった。同じ端末からのみアクセスする # サーバー起動 $ php -S localhost:8080 -t path/to/document_root別端末か…

【Javascript】contenteditableなdivでカーソル位置が指定できなかった原因

contenteditableなdivに「今日はいい天気だ」というテキストが存在して「は」の後ろ(前から3文字目)にカーソルを置きたかった。以下のようなコードで実験したけどなぜかカーソルが先頭にきてしまった。 <div id="editor" contenteditable="true"> 今日はいい天気だ </div> <script> window.onload = function() { va…

【Javascript】iOSでblur時にSelection.rangeCountが取得できなかったときに調べたこと

今回やりたかったのはfocusが外れるときの要素を保存しておき、再びfocusがセットされるときにカーソル位置を戻すということ試したのはこんなコード <div id="editor" contenteditable="true"></div> <input type="button" id="restore-range" value="restore range" /> <script> var saveRange $('#editor').on('blur', function() { var s = window.getSelection() if (0 < s.rangeC…

【cordova】cordovaFileTransfer で params も付けてファイルアップロード

ngCordovaの$cordovaFileTransferの使い方メモ https://github.com/apache/cordova-plugin-file-transfer のラッパー $cordovaFileTransfer.upload( 'https://xxx.yyy.zzz/path/to/api' 'path/to/upload_file', { fileKey: 'image', // アップロードするファ…

【JavaScript】GoogleMapの場所情報のポップアップ(POI)を消す

http://scientre.hateblo.jp/entry/20140410/disable_poi_popup こちらのサイトを参考に実装していたのですが、Mapを生成する際のオプションで制御できるとのことでした。 var div = document.getElementById('map') var options = { clickableIcons: false …

MacにComposerでライブラリをインストールしてPHPから呼び出す

PHPのライブラリのちょっとした検証を行おうとしたら今のPCでComposerを使ったことがなかったようだ。PCでさらにフレームワークなしでPHPを使うのが久々すぎて忘れていたので手順をメモしておく。今回はphpunitをhome以下にインストールする想定とする $ com…

Fastlaneにてcordova(ionic)プロジェクトのiOSアプリをDeploygateにアップロードする手順

今回やりたいことは以下 ・cordova(ionic)プロジェクトで作成したアプリをビルド ・ビルドしたアプリをデプロイゲートへアップロード とりあえずはデプロイゲートまでアップするのが目標 fastlaneインストール fastlaneをインストール $ sudo gem install fa…

iOS iTunesConnectに継続課金の自動更新登録(Auto-Renewable Subscription)が表示されない原因

ios

https://terakoya.site/ios_dic/ios-dic-in-app-purchese/ こちらを参考にiTunes Connectで設定を行なうところでつまづいた。App内課金コンテンツを追加するところで以下の3種類しか選択肢に出てこず、自動更新登録が表示されない。。 ・消耗型 ・非消耗型 …

【vue.js】コンポーネントを分割してテンプレートを分割

1画面1コンポーネントみたいな形で実装されているプロジェクトで。v-ifが増えてごちゃごちゃしてきたのでコンポーネントの分け方をメモしておく。vue.jsの基本構文だけども。。Main.vue <template> <div> <part-free v-if="user.isFree" v-bind:user"></part-free> <part-premium v-if="user.isPremium" v-bind:user"></part-premium> </div> </template> <script> import PartFree from './PartFree.vue'…

cordova-plugin-purchaseでQuotaExceededError (DOM Exception 22): The quota has been exceededエラー

cordova-plugin-purchaseを使っての継続課金機能の開発中にこちらのエラーが多発した。iOSの話。 Error in Success callbackId: InAppPurchase1613437489 : QuotaExceededError (DOM Exception 22): The quota has been exceeded.この辺りの処理も呼ばれなく…

ionic3でcordova pluginを使用する

ionic2からionic-native経由でcordovaプラグインを使うような形になってる。 素のcordovaプラグインを使うことも多いと思うのでメモしておく。pages/home/home.ts import { Component } from '@angular/core'; import { Platform } from 'ionic-angular'; de…

multitailでパスワード認証のサーバーを監視

ちょっと調べた感じだとsshpass使わないとできないかも multitail -s 2 -l "sshpass -p 'password' ssh user@srv1 'tail -f /path/to/log'" \ -l "sshpass -p 'password' ssh user@srv2 'tail -f /path/to/log'" -l "sshpass -p 'password' ssh user@srv3 't…

【vue.js】mixinでvue-routerを使う

こちらで書いたのとほぼ同じ内容だけれどもいちおうメモしておく。vue-routerの基本的な書き方は省略。Vueインスタンス生成部分 import Vue from 'vue' import VueRouter from 'vue-router' import routes from './routes' var router = new VueRouter({ rou…