スマホ間でURLや画像の受け渡し (未完成)
■ 序
すっごくよくある話なんだけど、iOSのAirDropみたいな感覚でURLや画像をiOS以外の端末に送りたい時~
よくある話なのでいろんなアプリがあったのだけど、最初は便利だったシンプルなアプリが、なぜか時が経つに連れて広告が入ったり有料化したり会員登録が必須になったり新しいOSで動かなくなったり…
てのもよくある話。
ちょっとした使いづらさは諦めて、LINEで共有したり(複アカめんどい)、Pushbulletで共有したり(割と鬱陶しいアプリになった)、Zeetleで共有したり(かなり鬱陶しいアプリになった)、Chromeのタブ履歴使ったり(まずChromeに渡すのがめんどい)、とりあえずはてブしたりするわけだ。
そんな折に
この記事。Piping-Server。これ。これ面白そう。これ使えそう。そんな感じがしてきたのでなんかうまく出来ないか試行錯誤する記録である。
■ Piping-Serverをかんたん共有アプリ化として使うにあたっての問題点
フォームがしょぼい
何もパスを指定しないと簡易的なフォームが出る。画像やテキストがすぐ送れる。ちゃんと考えられてる。便利。 なのだが、ここをもうちょっと使いやすくしたい。
パスを記憶させておくとか、パラメータで渡せるようにとか、モバイルフレンドリーなUIにするとか、PCではD&Dで登録できるようにとかしたい。
受信がしょぼい
元々パイプでデータを受け渡すためのものなので当然といえば当然だが、生データがペロッと出力されるのみである。
画像や動画などはこれでいい。Content-Typeが引き継がれる仕様なので送信側でヘッダを工夫すれば如何様にもなる。
しかしURLなどのテキストはいかんともしがたい。
中身がtext/plainのときはもうちょっとこう、HTMLで出してコピーしやすくしたりクリッカブルにしたりはてブ表示したりメタブクマしたりしたい。
ついでにパラメータやCookieでパスを覚えておいてもらったりそれに応じて受け取りボタンとかつけたい。
しかしながら
中身はJSなので改造は比較的容易。しかし改造するとバージョンアップが面倒。なによりdockerで簡単導入できなくなる。
自己都合な使い方をプルリクするのもどうかと思う。
そんなわけで
ラッパーを作りたい感じ。シェルコマンド叩くだけならPHPとかで簡単にできそう。たぶん。 ラッパー作ったらデータ送信用に乱数パス生成してデータ送る前にパス送るみたいななんちゃってセキュリティも出来るだろうし…
■ 共有方法
ラッパーを作る前にとりあえず素のままで頑張ってみようの巻。
iOSから送る場合(iOS12以降)
「ショートカット」アプリ一択。
こんな感じでショートカットを作る。
全部まとめてもいいのだがテキストとメディアファイルは分けたほうが無難。
あと「URL」を受け取るようにするとなぜかHTMLの中身が送られてしまうので注意。 「テキスト」型式のみにする。
ちなみに
この設定で「共有シートに表示」がオンになっていればファイル欄に「ショートカットの入力」が選べるようになります。
これでブラウザからでも写真アプリからでも共有でファイルが送信出来る。
iOSから送る場合(iOS12以前)
これが困った。
宗教上の理由(※32bitアプリを使い続けたい等)でiOS12以前の場合は「ショートカット」アプリは使えません。
「ifttt」でいいかなと思ったら画像は送れないしテキスト(Note widget)は文字化け(たぶんContent-Typeがおかしいのでラッパー使えば直せる案件かも)。
HTTP POST/PUT出来るアプリはたくさんあるのだけど共有シートから受け取れるヤツがない。
共有はあきらめて大人しくクリップボード経由でWebフォームから送るほうがラクかなあ…。
Androidから送る場合
Automateあたりで出来るんじゃなかろうかと思ったが試行錯誤して疲れたので諦めた。 Taskerは持ってるけど有料だから次はmacrodroidとかで試すかな→Getしかできなかった