AppleWatchとiPhoneの通信 watchkit swift 開発
watchkitとiOS間でのデータ共有の方法の1つです。
iOS(iPhone)側
※extensionでのみ記述
import WatchConnectivity //WCSessionDelegate extension ViewController: WCSessionDelegate { let wcSession = WCSession.default() func session(_ session: WCSession, didReceiveMessage message: [String : Any], replyHandler: @escaping ([String : Any]) -> Void) { } @available(iOS 9.3, *) func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) { print("activationDidComplete") } func sessionDidBecomeInactive(_ session: WCSession) { print("sessionDidBecomeInactive") } func sessionDidDeactivate(_ session: WCSession) { print("sessionDidDeactivate") } // AppleWatch viewDidLoad()などから呼び出す func isSupportAppleWatch() { if WCSession.isSupported() { wcSession.delegate = self wcSession.activate() } } }
viewDidLoad()側で isSupportAppleWatch() を呼び出してください。
watchOS(AppleWatch側)
import WatchKit import Foundation import WatchConnectivity class InterfaceController: WKInterfaceController,WCSessionDelegate { let wcSession = WCSession.default() override func awake(withContext context: Any?) { super.awake(withContext: context) // iPhoneとAppleWatchの連携チェック if WCSession.isSupported() { wcSession.delegate = self wcSession.activate() } } override func willActivate() { super.willActivate() } override func didDeactivate() { super.didDeactivate() } func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) { // iPhoneとの接続チェック if self.wcSession.isReachable { // iPhone側へ送信するデータ let watchMessage = ["": ""] // iPhone側へデータを送信 self.wcSession.sendMessage(watchMessage, replyHandler: {(reply) -> Void in // iPhone側から正常に返答があった場合 print(reply) }){(error) -> Void in // TimeOutや型不正、データ長オーバーなど正常に返答がなかった場合 print(error) } } }
Cloud9でNode.js(nvm, npm)のアップデート手順
Cloud9でAngular2を試そうとしています。
Angular2の実行要件が
node v5.x.x以上、npm 3.x.x以上
ということで、Cloud9のデフォルトのままでは利用できませんでした。
Node.jsをアップデートしていきます。
- node.jsのアップデート
- npmのアップデート
- nvmとnpmって何?
JSONデコードの第二引数
通常、json_decode()を使うと結果はstdClass(オブジェクト)になります。
今日のJSONデータサンプルは、WBC強化試合[侍ジャパン 対 CPBL選抜チャイニーズ・タイペイ]の日本の先発メンバーです。
{"1":{"position":"DesignatedHitter","name":"\u5c71\u7530"},"2":{"position":"SecondBaseman","name":"\u83ca\u6c60"},"3":{"position":"ShortStop","name":"\u5742\u672c"},"4":{"position":"LeftFielder","name":"\u7b52\u9999"},"5":{"position":"FirstBaseman","name":"\u4e2d\u7530"},"6":{"position":"RightFielder","name":"\u5e73\u7530"},"7":{"position":"ThirdBaseman","name":"\u677e\u7530"},"8":{"position":"Catcher","name":"\u5c0f\u6797"},"9":{"position":"CenterFielder","name":"\u79cb\u5c71"}}
アサヒスーパードライ プレゼンツ 侍ジャパン壮行試合 侍ジャパン 対 CPBL選抜チャイニーズ・タイペイ 第1戦|トップチーム|野球日本代表 侍ジャパンオフィシャルサイト
続きを読むJSON 関数【あまり使わないPHP関数シリーズ】
あまり使わないけど知ってたら便利なPHP関数シリーズ第一弾。
JSONを扱うPHP関数といえば、
JSONエンコード、デコードの2つですが、
その他にも便利な関数があります。
今回JSONデータは郵便番号-住所検索APIのサンプルデータを使います。
{"code":200,"data":{"pref":"\u611b\u77e5\u770c","address":"\u540d\u53e4\u5c4b\u5e02\u4e2d\u6751\u533a\u4e0a\u7c73\u91ce\u753a","city":"\u540d\u53e4\u5c4b\u5e02\u4e2d\u6751\u533a","town":"\u4e0a\u7c73\u91ce\u753a","fullAddress":"\u611b\u77e5\u770c\u540d\u53e4\u5c4b\u5e02\u4e2d\u6751\u533a\u4e0a\u7c73\u91ce\u753a"}}
続きを読む