エラー解決

ApacheのProxyPassでhtmlタグがそのまま表示される

ApacheのProxyPassでhtmlタグがそのまま表示される

1 minute read

  1. 環境 [CentOS] 6.8 (64bit版カーネル) [Apache] 2.2.15 1. 問題 ApacheのProxyPassディレクティブ(mod_proxy)を指定して、バックエンドから受け取ったコンテンツを表示しようとするとhtmlタグがそのまま表示されてしまいます。 Apache設定ファイルの抜粋 NameVirtualHost *:80 # 省略 <VirtualHost *:80> ServerAdmin test@local ServerName test.local ProxyPreserveHost On ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ ErrorLog logs/test.local-error_log CustomLog logs/test.local-access_log combined </VirtualHost> 2. 対策 ChromeのDeveloper Toolsなどで見ると、下記のようにHTTPレスポンスヘッダーで平文が指定されています。 Content-Type text/plain; charset=UTF-8 デフォルトのMIMEタイプ指定を無効にすることで解消しました。 Apache設定ファイルの抜粋 NameVirtualHost *:80 # 省略 <VirtualHost *:80> ServerAdmin test@local ServerName test.local # —– この行を追加 —– DefaultType None # —– この行を追加 —– ProxyPreserveHost On ProxyPass / http://127.

AppleWatchアプリ開発におけるWCSessionのメソッド使用方法

WCSession#sendMessage()の代わりにupdateApplicationContext()を使う際の注意点

1 minute read

  1. 環境 [OS] Mac OS X 10.11.6 [IDE] Xcode 8.1 [Swift] 3.0 1. 問題 WCSession#sendMessage()を使ってAppleWatchからiPhoneアプリへメッセージを送っても、30秒ほどしないと通知されない。 AppleWatch側 @IBAction func tapButton() { let message = [ "fromChild": "AppleWatchからのメッセージ" ] WCSession.default().sendMessage( message , replyHandler: { reply in } , errorHandler: { error in } ) } iPhone側 func session(_ session: WCSession, didReceiveMessage message: [String: Any], replyHandler: @escaping ([String: Any]) -> Void) { if let watchMessage = message["fromChild"] as? String { print(watchMessage) } else{ print("error") } } 2.

Type 'ViewController' does not conform to protocol 'WCSessionDelegate'

Type 'ViewController' does not conform to protocol 'WCSessionDelegate'

1 minute read

  1. 環境 [OS] Mac OS X 10.11.6 [IDE] Xcode 8.1 [Swift] 3.0 1. 問題 iPhone & AppleWatchアプリを作成中にSwiftを2.2から3へバージョンアップしたところ、iPhone側で下記のエラーが出るようになりました。 Type ‘ViewController’ does not conform to protocol ‘WCSessionDelegate’
    1. 解決 ViewControllerに下記メソッドを追加するとエラーが消えました。 public func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) { } func sessionDidBecomeInactive(_ session: WCSession) { } func sessionDidDeactivate(_ session: WCSession) { session.activate() } 下記の仕様書にもこれらのメソッドは必須と書かれています。 [API Reference] WCSessionDelegate
    2. 参考ページ Migrating app from Swift 2.