タップ数が少なくて、しかもジェスチャーだけでブックマークレットを動かせるって、考えただけでもわくわくしませんか!?どんなアプリを使って...
先日、すみれっくすさんやマヨテキさんにインスパイアされて、insta2HTMLという@feelingplaceさんのブックマークレットの記事を書きました。
Instagramを貼り付けるブックマートレットをカスタマイズする
幸運にも「それをやってみたい」と言ってくれて、エントリーまで書いてくれた方がいらっしゃいました。すみれっくすさんありがとう。
エントリーの前日にTwitterから質問を幾つかいただきました。導入に戸惑ってらっしゃる模様。エントリーにも、エラーメッセージや謎の通知でお困りの様子でしたので私も解説をさせていただきます。
※記事に引用されているスクリプトの多くが文字化け(?「amp;」の繰り返し)しているので、根本的な解決にはややかかりそうです。
まさに、私の記事がよくわからないのが原因という事になりますが、真摯に受け止めて今後の糧とします。
それにしても、それでも動いてしまうLibingをはじめ、Kayさんふぃーぷれさんのスクリプトの完成度の高さが感じられたエピソードではないでしょうか?
案1 Libingのバックグラウンド監視のみで完結させる
案1 Libingのバックグラウンド監視のみで完結させる
記事によれば、最後はLibingからinsta2HTMLを起動しています。そのLibingの起動(Instagramのwebページを開く)にMyScriptsのバックグラウンド監視を使用されています。
Libing単体でもバックグラウンド監視からInstagramのwebページを開く事ができます。
ですので、それに絞ってしまい、MyScriptsを経由させないやり方です。
メリットはこれにより、MyScriptsのエラー表示と通知センターに通知が残る事がなくなります。
デメリットは、特にありませんが、通知をピコピコ触る快感はやや減るかもしれません。
?起点のURLスキーム(Draftpadに登録されているもの)
これは、実は
「MyScriptsのバックグラウンド監視のチェックを入れる」URLスキームです。
自分でチェック入れなくても、URLスキームからもできるんですね。そのURLスキームをMyShortcuts+Viewer経由で起動させています。
謎のゴミはこの為です。
※ゴミ自体はタップするか(Instagramアプリが起動するだけです)MyShortcuts+Viewerのリマインダーから削除していただいて問題ありません。
ここのMyShortcuts+ViewerとMyScripts、Instagramの連携起動をやめて、Libing単体に変更してしまいましょう。
ですのでここではURLスキームをinstagramのものに変更します。別にDraftpadから起動しなくても問題ありません。
変更前
myshortcuts://addreminder?title=instagram&url=fb124024574287414://&dtime=1&repeat=once&autodelete=yes&autocallbackurl=myscripts%3A%2F%2Fbackground%3Ftitle%3Dinsta2HTML
変更後
fb124024574287414:
?MyShortcuts+Viewerの通知センターのゴミ
これは前述の通りタップやリマインダーの編集を行います。
?MyScriptsのエラー表示
残念ながら、原因がわかりません。このままで問題ありませんが、予想として以前の記事にあった「MyScripts版insta2HTML」との絡みかなぁ?名前が同じ、とか。仮に私のバージョンの方の名前を全て変えてみてどうか、という感じでしょうか。(Libing側とかも全て変えないとダメですが)とりあえず、そのままにしましょう。
?Libingのx-callback-urlとwindow://callback
今回は使用しませんのでそのままにします。他の機会で使用できますのでそのままにしておきましょう。
まとめ
変更点はMyScriptsを経由しなくなった点です。InstagramでURLをコピーした後、Libingからの通知がくるまで少々お待ちいただきます。
Appleの仕様で全てのアプリのバックグラウンド監視は10分に制限されています。最近Libingひらいてない、という場合にご注意下さい。
Instagramアプリ起動
↓
「シェアURLをコピー」
↓
Libingが通知してくれるまで待つ
↓
通知をタップするとLibingが開く
↓
Libing内のinsta2HTMLを「↑→」起動
今後
マヨテキさんの記事の様にメインで使われているエディターに自動で貼り付ける様にカスタマイズされてみては?
問題点
Libingのバックグラウンド監視が安定しないケースが考えられます。
InstagramでURLをコピー後通知がこない場合はこのケースです。
他のアプリ(Twitterなど)のURLをコピーしてバックグラウンド監視から開くかをお試し下さい。
ダメな場合はLibingの再起動、「クリップボードを監視」を一度OFFにした後またONにするなどでしょうか?
案2 Libingのx-callback-urlを使用する
案2 Libingのx-callback-urlを使用する
これは残念ながら記事だけでは解決出来ないかもしれませんがまずMyShortcuts+Viewerのゴミを全て消しておきます。
記事を見る限りLibing側の登録に問題はなさそうですので、最後のinsta2HTMLの起動をwindow://callbackの「←↑←」ジェスチャーで行ってみて下さい。
ゴミが増えるか、をみていただいて増えない様でしたらそのまま使用できるでしょう。
注視して欲しい点として
MyScriptsのバックグラウンド監視のチェックを外してから全てを起動してみて、きちんと動くか、です。
MyScriptsのエラーはここがうまく行っていないという事の様な気がします。
前述の「変更前」のURLスキームで
バックグラウンド監視オン
↓
MyShortcuts+Viewerの通知からInstagramのアプリ起動
↓
(MyShortcuts+Viewerの通知がきちんと消えてゴミが増えていない)
これが理想的な形です。このうちどこでうまくいかないかによって次の対応が取れるのではないでしょうか。
私としては案1がエラー関係を大方解決できるので良いと思います。
後はLibingの安定動作と天秤にかけていただいて。
本当なコールバックから起動が私は好きなので、何とか案2がうまく行くといいのですが。
あるいはバックグラウンド監視だけMyScripts
で行う様にスクリプトを書くとかになりますでしょうか。何だかヘンテコですが。
まずは、Libingのクリップボード監視を他のアプリとかで色々試してみて下さい。
それでイマイチな場合はまた考えましょう。m(_ _)m
<style>.ig-b- { display: inline-block; }.ig-b- img { visibility: hidden; }.ig-b-:hover { background-position: 0 -60px; } .ig-b-:active { background-position: 0 -120px; }.ig-b-16 { width: 16px; height: 16px; background: url(http://badges.instagram.com/static/images/ig-badge-sprite-16.png) no-repeat 0 0; }@media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2 / 1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx) {.ig-b-16 { background-image: url(http://badges.instagram.com/static/images/ig-badge-sprite-16@2x.png); background-size: 60px 178px; } }</style>Instagramby a2_a_02_syotaro