REST APIの動作確認をしていて思いついたので作成しました。

holo

まじめにiPhoneアプリを作ろうとするとXcode開いてSwiftで~とかになりますが、おおげさなのでPythonistaというアプリで作りました。

このアプリかなりすごくてiPhoneだけでPythonのプログラミングができます。2系も3系も対応しており、環境構築とかそういうものも必要ありません。電卓や簡単なゲームのサンプル等もついており、またグラフも簡単にかけたりします。

今回のソースは(タイムアウト処理とかはしていませんが)以下になります。

ヘッダー情報は昨日のAdvanced REST clientに表示されていたものをコピぺしただけなので適当ですが、XXXXXとしている認証情報とIPアドレスを適宜設定すれば動くと思います。

import ui
import console
import requests		
 
isRecording = False
 
def button_tapped(sender):
	h = {"accept":"application/json", "accept-encoding":"gzip, deflate", "accept-language":"en-US,en;q=0.8", "content-type":"application/json", "user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36", "Authorization":"Basic XXXXX", "X-CSRF-Token":"XXXXX"}
 
	if isRecording == False:
		global isRecording
		isRecording = True
		u = "https://192.168.0.19/api/holographic/mrc/video/control/start?holo=true&pv=true&mic=true&loopback=true"
		btn = sender.superview['button1']
		btn.title = "Stop"
	else:
		global isRecording
		isRecording  = False
		u = "https://192.168.0.19/api/holographic/mrc/video/control/stop"
		btn = sender.superview['button1']
		btn.title = "Record"
 
	res = requests.post(url=u, headers=h, verify=False)
 
	view = sender.superview['textview1']
	if res.text == "":
		view.text = "The response was empty."
	else:
		view.text = res.text
 
v = ui.load_view()
v.present('sheet')

UIの制御については電卓のサンプルが参考になると思いますが、以下にキャプチャ画像と簡単な説明をつけておきます。

File 2017-08-16 10 42 56

UI付きでスクリプトを生成。

File 2017-08-16 10 43 23

ファイル名を指定してDone。

File 2017-08-16 10 43 43

ボタンは画面したにフィットするようにしました。

File 2017-08-16 10 43 55

ボタンのラベル名とタップしたときのアクションを指定します。

File 2017-08-16 10 44 10

全体のレイアウトはこのような感じ。

textview1の詳細は省略していますがレスポンスが表示されるようになっています。

トラックバック

コメント

  1. […] iPhoneやエディタ拡張で録画制御すると停止操作を映さないで済むので結構気に入っていますが、試しにアプリ内に組み込んでみました。 […]

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です