はじめに
iOSの共有メニューからPythonista3のスクリプトを起動する方法のメモ。
共有メニュー
iOSには他のアプリにデータを受け渡すことができる共有メニューがあり、次のようなアイコンを様々な場面で見かけます。
これをタップすると出てくるメニューには、標準のAirDrop、メッセージ、メールの他にインストールされているアプリで共有シートに対応したアプリが並び、そしてその時の操作に対応したアクションも表示されます。
Run Pythonista Script
Pythonista3をインストールすると、共有メニューのアクションの欄にRun Pythonista Scriptというメニューが追加されます。
このメニューをタップすると、あらかじめ登録しておいたスクリプトのアイコンが並びます。
これはあらかじめ**./Examples/Extension**にプリセットされているスクリプトです。 ここに自分で作ったスクリプトを登録することができるので、ほかのアプリからデータを受け取り、加工してから保存するという使い方もできます。次のサンプルは受け取った画像を時計回りに90度回転してコンソールに表示します。
test.py
import appex
import console
def main():
if not appex.is_running_extension():
console.hud_alert('共有シートから実行して下さい。','error',2)
return
image = appex.get_image()
if not image:
console.hud_alert('イメージが見つかりません。','error',2)
return
# 画像を回転してコンソールに表示する。
image = image.rotate(270, expand=True)
image.show()
if __name__ == '__main__':
main()
共有メニューから呼び出さないと実行できないようにしてあるので、次はこれを共有メニューから実行できるようにします。
Share Extension Shortcuts
Pythonistaの設定画面からShare Extension Shortcutsの登録ができますが、写真アプリなどの共有メニューからも可能なので、写真アプリからやってみます。
- 画像を開いた状態で共有メニューを開きます。
- Run Pythonista Scriptをタップします。
- Editをタップすると出てくる「⊕」アイコンをタップします。
- ファイル選択ダイアログが表示されるので、登録したいスクリプトを選択します。動画では
Examples/Extension/test.py
を選択してます。 - いろいろ設定できますが、今回は登録するだけなので、Addをタップします。
- いま登録したスクリプトのアイコンが追加されてれば登録成功です。
- アイコンをタップすればスクリプトが実行されます。
上のGIFのもとの動画のリンクです。