4

Mac で sftp:// および sshfs:// URL を処理する単純な AppleScript アプリケーションを作成しようとしています。AppleScriptでカスタム URL ハンドラー アプリを作成する方法に関する優れたガイドに基づいて、次のような小さなアプリを作成しました。対応するスキームで URL をクリックするとうまく機能します。実際の作業は、sshfs(FUSE) を呼び出す別のシェル スクリプトで行われます。OS とのインターフェイスとして AppleScript を使用しています。

on open location theURL
    set cmd to (quoted form of (get POSIX path of (path to resource "sshfs.sh" in directory "Scripts"))) & " " & theUrl
    do shell script cmd
end open location

ただし、このカスタム URL ハンドラー AppleScript アプリは、 Terminal からコマンドを使用すると機能しませんopen

open sftp://host/path

on run argv他のハンドラーを追加しようとしましたが、コマンドラインの方法で、私が記述したハンドラーではなくハンドラーを呼び出すことがわかりましたが、渡された URL 引数にアクセスする方法がわかりません。スクリプトを直接呼び出すと、URL に正しくアクセスできますosascript my.applescript sftp://host/path。ASObjC Runner を試してみましたが、役に立ちませんでした。

openUnix コマンドで渡された引数を受け取るための標準ハンドラまたは AppleScript アプリケーションのメソッドはありますか? AppleEvents に依存しているようですが、AppleScript を使用してコマンドとネイティブ アプリの間で同じ魔法を実行する方法を説明している適切なリファレンスが見つかりません。

4

1 に答える 1

0

「実行中のハンドラー」で処理しないのはなぜですか? このようなもの...

on run argv
    set theArg to item 1 of argv
    if theArg starts with "sftp://" then
        open location theArg
    else
        -- do the normal applescript code
    end if
end run

それとも、「open」UNIXコマンドが引数を渡さないと言っていますか?

于 2012-12-16T08:22:34.047 に答える