PhoenixFramework の WebSocket に iOS からつなぐ

PhoenixFramework の WebSocket に iOS から繋ぐのはとても簡単だった。

Awesome iOS with 🌟 で、 Swift で書かれている中から Starscream を選んで使ってみた。README にでかでかと表示されたロボットがカッコよかったので。

PhoenixFramework は ES6 で書かれた WebSocket 通信のためのクラスが最初から用意されてて、その仕組みに乗るとすごく楽なので、Swift 側で同じ仕組みに乗るような通信をすればよい。PhoenixFramework で実装された WebSocket の Chat を使ってみる。

PhenixFramework では、特定の topic に join するというのがあるが、これは JSON に event: "phx_join" というのを付けて送ってる模様。また、まだ良く理解できていないが毎通信ごとに ref というカウンターをインクリメントしてるので倣ってみる。 topic には、Phoenix 側で使ってる topic をそのまま入れれば、あとは好きなように payload にデータを入れてやり取りすればOKなようだった。とても簡単。

下記のようなコードで、Phoenix 側と通信して、 JavaScript で繋がってるブラウザとやり取りが出来た。

PhoenixFramework の WebSocket に iOS からつなぐ

WKWebView で NetworkActivityIndicator を良い感じに表示(Swift3)

以前 iOS9 が出たときに書いたものが古くて使えなくなってたので、書き直した。

iOS9とSwift2の頃のやり方

iOS9 から追加された WKWebView で、networkActivityIndicator (iPhoneの上部のステータスバーで読込中にぐるぐるさせるやつ) を表示する方法。 UIWebView と WebView はもう使うなって API Reference に書いてある。

Swift3 になって書き方も変わっているのと、iOS9 から constrains の設定もしやすくなった。WebView の一種でコンテンツを読み込むとき、isNetworkActivityIndicatorVisible を処理しないことが無かったので、 pod でインストール出来るようにした。

EcpWebView (on GitHub)

続きを読む “WKWebView で NetworkActivityIndicator を良い感じに表示(Swift3)”

WKWebView で NetworkActivityIndicator を良い感じに表示(Swift3)