iOSのブラウザでは外部キーボードのカーソルのキー入力イベントが出ない

菅さんがiOSデバイスでscrapboxがうまく使えないというツイートをしていて、自分はそんなに困ってないけどなとやりとりしていたら、菅さんはiPadに外部キーボードをつなげてscrapboxを使おうとしていて、カーソルキーを使った編集作業ができないので実質使えないのだそう。手元でiPhoneにbluetoothキーボードをつないで試してみたらたしかにそうだった。

ネイティブアプリではカーソルキーが使えるのでどういうことなのかなと調べてみたら、どうやらiOSのブラウザでは(JavaScriptCoreでは?)外部キーボードのカーソルキー操作時のキーイベントが出ず、カーソルキーを使った操作の実装が不可能みたい。

Official answer from Apple:

Thank you for contacting Apple Developer Technical Support (DTS). Our engineers have reviewed your request and have concluded that there is no supported way to achieve the desired functionality given the currently shipping system configurations.

ぜんぜん知らなかった。カーソルキーはページスクロールにも関わるからタッチとの齟齬を考慮して殺してあるのかな。ちなみにAndroidは問題ないようだった。


Scrapboxをアウトライナーぽく使う人むけのuserScript/Style

とりあえず不満だったとこに対応したやつ

行の付加情報用の文字修飾UserStyle

noteのあるアウトラインを持ってきたりするときに、強弱がなくてごちゃごちゃするのでほしかった。

1
2
3
4
5
code:style.css
.deco-\~ {
font-size: 0.8em;
color: #999;
}

リンクをコピーする用にCopy Link%text% [~ %url%]というのを追加して使っている。文字全体をリンクにすると青色ばっかりになってこれまたうるさいので。

選択テキストの検索結果にリンクするUserScript


文字列を選択してScrapbox内検索から発展したもの。Scrapboxのダイナミックリンク楽しいんだけど、行の情報に対するタグ的に使うと一覧性がなくて、検索結果のほうがみたいと思うことが多いのでそうするやつ。個人的にはハッシュ形式のリンククリックの挙動が変えられるなら検索結果のほうにしたい。

1
2
3
4
5
6
7
8
9
code:script.js
scrapbox.PopupMenu.addButton({
title: '検索リンク',
onClick: function (text) {
var projectName = 'YOUR PROJECT NAME';
return '[' + text + ' https://scrapbox.io/'+ projectName +'/search/page?q=' + encodeURIComponent(text) + ']';
}
});

scrapboxを検索して開くalfred workflow

dotimpact/scrapbox-alfred-workflow: scrapbox alfred workflow


ご多分にもれず、情報集約にScrapboxを使い始めて、ちびちびと環境整備をしている。

githubで検索していたら、go製の検索cliをみつけたので、これを呼び出すalfred workflowを書いた。



cliでプライベートprojectにアクセスするためのトークンは、ログインしたブラウザのクッキーが持ってる値を渡せばいいみたい。