アプリに「LINEで送る」を実装する

f:id:yuichilo:20171118002858p:plain

こんな感じのボタンからメッセージをLINEアプリへダイレクトに送信します。

Webサイトに設置したい場合は、以下の公式サイトで確認できます。 media.line.me

今回は、OSの共有機能を利用するのでもなく、アプリから直接LINEを起動してメッセージを投稿する方法です。

実装のポイント

  • LINEのDeveloper登録は必要ない
    • SDKなどの導入も必要ありません
  • URL Schemeline:/msg/text)を利用する
    • line://msg/text/<message>の形式でURLを作成する
  • URLエンコードする
    • 日本語メッセージの送信には、URLを作成するためエンコードが必要です。
  • 改行コードを指定する
    • 受信した相手に見やすい表示にする
  • iOSでは送信メッセージの確認ができない
    • 送信前にメッセージの確認・編集ができないため、メッセージ内容には注意が必要です。

iOSの実装

Info.plistへの許可設定

iOS9からアプリ内で実行するURL SchemeをプロジェクトのInfo.plistに設定する必要があります。

Key: LSApplicationQueriesSchemes
value: (配列でURL Schemeを指定)

f:id:yuichilo:20171118000810p:plain:w600

URLの作成とopen

  • Swift 4.0
let urlscheme: String = "line://msg/text"
let message = "iPhone X\n\n私たちはずっと変わらないビジョンを持ち続けてきました。\nすべてがスクリーンのiPhoneを作ること。\n\nhttps://www.apple.com/jp/iphone-x/"

// line:/msg/text/(メッセージ)
let urlstring = urlscheme + "/" + message

// URLエンコード
guard let  encodedURL = urlstring.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) else {
  return
}

// URL作成
guard let url = URL(string: encodedURL) else {
  return
}

if UIApplication.shared.canOpenURL(url) {
  if #available(iOS 10.0, *) {
    UIApplication.shared.open(url, options: [:], completionHandler: { (succes) in
      //  LINEアプリ表示成功
    })
  }else{
    UIApplication.shared.openURL(url)
  }
}else {      
  // LINEアプリが無い場合
  let alertController = UIAlertController(title: "エラー",
                                          message: "LINEがインストールされていません",
                                          preferredStyle: UIAlertControllerStyle.alert)
  alertController.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.default))
  present(alertController,animated: true,completion: nil)
}
  • 改行コードは「\n」です
  • URLはエンコードします
  • openURLはiOS10からメソッドが異なります
  • 「LINE」アプリがインストールされていない場合を考慮します

画面遷移

アプリからURL Scheme実行 LINEアプリが起動して送信先選択 送信完了
f:id:yuichilo:20171118004232p:plain:w300 f:id:yuichilo:20171118004222j:plain:w300 f:id:yuichilo:20171118004227j:plain:w300

Androidの実装

URLの作成とStartActivity

  @Override
  public void onClick(View view) {

    // URL Scheme
    String urlScheme = "line://msg/text";
    // メッセージ
    String message = "iPhone X\n\n私たちはずっと変わらないビジョンを持ち続けてきました。\nすべてがスクリーンのiPhoneを作ること。\n\nhttps://www.apple.com/jp/iphone-x/";

    // メッセージをURLエンコード
    String encodedMsg = null;
    try {
      encodedMsg = URLEncoder.encode(message, "UTF-8");
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }

    if (encodedMsg != null) {
      Uri uri = Uri.parse(urlScheme + "/" + encodedMsg);
      Intent i = new Intent(Intent.ACTION_VIEW,uri);
      startActivity(i);
    }
  }
  • LINEアプリのインストール有無はPackageManagerなどで事前にチェックする必要があります
  • 改行コードは「\n」です
  • URLはエンコードします

画面遷移

アプリからURL Scheme実行 LINEアプリが起動して送信先選択 送信メッセージの内容を確認可能 送信完了
f:id:yuichilo:20171118122512p:plain:w250 f:id:yuichilo:20171118122501p:plain:w250 f:id:yuichilo:20171118122507p:plain:w250 f:id:yuichilo:20171118122517p:plain:w250

デザイン

「LINEで送る」のボタン画像は公式のサイトでリソースを配布しています。 https://media.line.me/ja/how_to_install#lineitbutton

まとめ

今回利用したURLスキームは、ネット上の情報を利用して動作確認まで行えました。
しかし公式のURLスキーム情報にたどり着けなかっため、今後利用できなくなる可能性もあります。
ともあれ、Developer登録やSDKの導入なしで利用できるURLスキームで連携できるのは便利でした。

iPhone Xで画面を下げるが。。

Rebuildを聴いていたら、NさんがiPhone Xで画面を下げて操作する話をしていたので、「その手があったか!これでコントロールセンターも通知センターも片手でいけるのでは!?」と思いました。

rebuild.fm

今まで、画面を下げるアクセシビリティなんて利用したことなかったので知りませんでしが、デフォルトでOFFなんですね。

「設定」⇨「一般」⇨「アクセシビリティ」⇨「簡易アクセス」をON にします。

これで、ホームインジケータを下にスワイプスると、画面がずり下がり片手操作がだいぶ楽になります。  

設定しながら気がついてたんですが、画面が下がってもステータスバーが下がるわけではないので「コントロールセンター」「通知センター」を表示するには端末の最上部に指が届かないとダメです。

画面上部ではなく、ずり下がった上の部分を下にスワイプスると「コントールセンター」「通知センター」が表示されました!これで片手操作ができます!(11/19 追記)

画面が下がることでもう一つ気がついたのが、普段ノッチの裏に隠れているアプリの表示部分が露わになるということです。

ここは、アプリをスウィッチするか画面キャプチャを取らないと普段は見えない箇所なので画面を下げることで簡単に見えるとなると、ここに隠しコメントでも入れて置きたいなと思いました。

ノッチ裏が露わに
f:id:yuichilo:20171115231903j:plain

iPhone Xのキーボードはやはり使いずらいので小さくする

大きすぎるPlusサイズを避けて来ました。
理由は片手操作を諦めていなかったからです。

しかし、iPhone Xになり片手を。。。少なくとも「通知センター」「コントロールセンター」は諦めざるを得ません。
どう考えても指が届きません!

iPhone6,7 (4.7インチ) iPhone X (5.8インチ)
f:id:yuichilo:20171113001455p:plain:w350 f:id:yuichilo:20171113001446p:plain:w350

しかし、キーボード操作は片手で操作したいのです。

「通知センター」や「コントロールセンター」はたまにしか操作しないので諦めることはできます。
でも、キーボード操作は諦められないのです。

iPhone Xは、PlusサイズよりもiPhone6、iPhone7のサイズに近いですが、若干横幅があることと厚みがあることで片手ではキーボード入力がかなり厳しいです。

そこで、iOS11からサポートされているキーボードを左右どちらかに寄せて幅を小さくする設定を行います。

設定は簡単で、キーボードの地球マークを長押してすると出てくるメニューから左右の設定を選択するだけです。
普段私は左手で操作するのでキーボードを左に寄せます。

地球マークを長押し メニューから寄せる方向を選択
f:id:yuichilo:20171114003608j:plain:w350 f:id:yuichilo:20171114003553p:plain:w350
右を選択してみる キーボードが左に寄った!
f:id:yuichilo:20171114003603p:plain:w350 f:id:yuichilo:20171114003614p:plain:w350

これで片手入力がiPhone5、iPhoneSEのキーボードサイズで可能となりました。
 
これ、設定は簡単なのですが解除も同じくらい簡単です。キーボード操作中にいつのまにか解除してしまうことがあります。
簡単に元に戻らないように「設定」アプリから設定できるよにしてもらいたいです。

個人間送金アプリ「Kyash」を初めて利用してみた

スマートフォンだけで支払いができる「オサイフケータイ」機能は、Apple Play、Android Pay(さよならGoogle wallet)などの登場で世界中でも当たり前になっています。
そして現在では、スマホでの個人間におけるお金のやりとりが頻繁に行われています。
そこで利用されるのが個人間送金のアプリです。

私の周りを見ると利用している人はまだ少ない印象ですが、利用可能なサービスは様々なものが登場しています。

こちらで各サービスの詳細な比較が行われています。

carrinova.com

今回はこの記事でもオススメされている「Kyash」を利用してみました。

Kyash

Kyashの特徴は、始める手軽さと利用範囲の幅広さです。

play.google.com

始める手軽さ

Kyashは他サービスと異なり、本人確認作業なしで送金が可能です。
利用可能になるために数日かかるということは無く、その場でアプリをインストールして利用し始めることもできます。
これはクレジットカードの登録だけで、銀行口座との紐付けが必要ないためです。 そのため、現金化(出金)はできません。
送金は、その場で金額を入力して送るだけですぐに相手のKyashアプリに届きます。

送信を受け取った表示
f:id:yuichilo:20171113000131p:plain

Kyashアプリを利用していない相手にもFacebook Messager, LINEを利用して送金が可能です。
※ これは「送金」が可能なのであって、受け取る相手は最終的にKyashアプリをインストールする必要があることに注意です。

利用範囲の幅広さ

Kyashは、利用開始時にKyashのVISAカードが発行され、このカードはオンラインショッピングにて通常のクレジットカード同様に利用可能です。
ほとんどの人が普段の買い物でAmazon楽天、ZOZOTOWNなどの様々なオンラインショッピンを利用することが多いと思います。
これらオンラインショッピングで利用可能ということであれば現金化ができないことは大した問題ではないと思います。
他のサービスは現金化が可能ですが、現金化には通常手数料が発生しますし、個人間でやり取りする残高金額であれば、オンライン利用用途の方が多いのではないかと思います。
こういった意味でも多くのオンライン店舗で利用可能なVISAカードが発行されるKyashは利用範囲が広いと言えます。

まだまだ日本では一般的とは言えない個人間送金ですが、今後は利用する人も増えてくるのでKyashには是非とも利用しやすいサービスを作っていってもらいたいと思います。

Apple Pay Cashは?

ここまで「Kyash」を褒めて来ましたが、Apple好きとしては
Apple Pay Cash」はまだか!「Apple Pay Cash」はまだか!
という状況です。

個人間送金が可能となるサービス「Apple Pay Cash」はそろそろアメリカで利用可能になりますが、日本ではまだ先です。

japan.cnet.com

仮に利用可能となってもiMessageアプリに閉じた世界なので、Appleユーザ以外は利用できません。
AppleユーザでもiMessageを利用している人がどれだけいるのか?という残念な問題は横に置いておいて、Apple Pay Cashを楽しみに待ちたいと思います。

個人 -> 店舗の支払いではApple Payは順調なようですが、個人 -> 個人ではどのような状況になるのでしょうか?

japanese.engadget.com

未来はワイヤレス

Apple Watch Series 3を購入後、iPhone Xを見据えてワイヤレス充電器を購入しました。

「さぁ、未来だ!」と意気込んで試したのですが、Apple Watchの充電ができない。。。

充電できないのです。実際は2秒くらいは反応しますが、すぐに反応が無くなり充電ができません。

すでに購入の時点でApple Watchは、市販のQi対応充電器で充電ができないという情報がいくつもあったようです。
調べてから購入すれば良かったです。

iphone-mania.jp applewatchjournal.net

Apple純正の「AirPower」を大人しく待たなかった罰だと反省し、クローゼットの奥にしまい込んだのでした。。。

そして月日は流れ11月3日、iPhone X 発売!

ゴソゴソと引っ張り出したワイヤレス充電器。

充電できることは知っていますが、ドキドキです。

iPhone X ワイヤレス充電

The future is wireless

未来です。