WorkExtendと他のアプリとの連携
WorkExtendには他のアプリとの連携するための機能が幾つかあります。
他のアプリからWorkExtendを呼ぶ(URLスキーム)
URLスキームでWorkExtendを起動することができます。また、URLスキームで表示するWebページ(URL)を指定したり、起動するスクリプトやスクリプトに渡す値なとを指定することができます。
詳細はWorkExtendのURLスキームマニュアル を見ていただくとして、簡単に幾つかご紹介します。
URLスキームの書式
work-extend://スクリプト名?url="表示するページのURL"&x-success="スクリプト実行後に起動するURLスキーム"&arg0="スクリプトに渡す値"&arg1=......
WorkExtendを起動するだけ
work-extend://
Googleの検索ページ(https://www.google.co.jp/) でスクリプト”Hello world”を実行する
work-extend://Hello%20world?url=https%3A%2F%2Fwww.google.co.jp%2F
Googleの検索ページ(https://www.google.co.jp/) を読み込み完了し1秒後にスクリプト”Hello world”が実行されます。
Googleの検索ページ(https://www.google.co.jp/) でスクリプト”Hello world”を実行後、chromeでGoogleの検索ページを表示する
work-extend://Hello%20world?url=https%3A%2F%2Fwww.google.co.jp%2F&x-success=googlechrome%3A%2F%2Fwww.google.co.jp%2F
「他のアプリ1→WorkExtend→他のアプリ2」といった動作を行えます。
WorkExtendから他のアプリを呼ぶ
スクリプトにURLスキームを書く(単に他のアプリを起動する)
スクリプトにJavaScriptだけではなく、URLスキームも書くことができます。URLスキームの場合、そのスクリプトを実行するとURLスキームが実行されアプリを呼び出すことができます。
x-success(スクリプト実行後に他のアプリを起動する)
スクリプト編集の「その他」タブにある「実行後(x-success)」にURLスキームを指定すると、スクリプトを実行後に、そのURLスキームを起動します。
また、WorkExtendを起動するURLスキームでx-successを指定することでも同じことができます。
通知(あとで他のアプリを起動する)
スクリプト編集の「その他」タブにある「通知」にURLスキームを指定すると、スクリプトを実行後に、通知されます。通知をタップすることで指定したURLスキームを起動することができます。
また、通知を発行する時間も指定することができます。通知で作業が邪魔されないように、作業が終わることを見計らって通知を出すということも可能です。
window.open()(スクリプト内から他のアプリを起動する)
window.open(URLスキーム)
を使えば、スクリプト(JavaScript)から他のアプリを呼ぶことができます。
非同期処理などが終了した後に、他のアプリを呼びたい時はこちらを使用してください。
「スクリプト実行後」の注意
WorkExtendから他のアプリを呼ぶx-successも通知も「スクリプト実行後」に行われます。ここで、「スクリプト実行後」とということにちょっと注意してください。
「スクリプト実行後」とは、スクリプトここでいうJavaScriptの実行が終了した時です。
setTimeout()
やsetInterval()
などの非同期処理を使っている場合、非同期処理が完了する前にメインのスクリプトが終了します。ですので、非同期処理が終了する前にスクリプト自身の実行が終了し、x-successや通知が実行されますのでご注意ください。1
非同期処理が済んだ後に他のアプリを起動したい場合は、非同期処理内でwindow.open()
を使用してください。
JavaScriptはシングルスレッドで実行されていますので、メインのスクリプトの実行が終わってから、非同期の部分が実行さてます。詳しくはJavaScriptのドキュメント等を読んでください。 ↩︎