問題タブ [javascript-automation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - javascript オートメーション iTunes のダウンロードボタンをクリック
JXA を使用して iTunes からアプリをプログラムでダウンロードする必要があります。私は次のことをしました:
要素が選択されていません。ボタン [0...7] をクリックしてみましたが、どれも「取得」ボタンではありません。必要なボタンはドキュメント内にあると思いますが、JXA ドキュメントには、ボタン要素はドキュメントではなくウィンドウの子であると明確に記載されています。正しいボタンをクリックする方法についてのアイデアはありますか?
objective-c - JXA: CoreServices から CFString 定数にアクセスする
組み込みの ObjC ブリッジを備えたJXAは、オブジェクトFoundation
を介してフレームワークから列挙と定数を自動的に公開します。$
例えば:
CFString
ただし、自動的にインポートされない下位レベルの API にも便利な定数があります。つまり、頻繁に使用されるUTI値 ( UTIなど)を定義する のkUTType*
定数です。CoreServices
kUTTypeHTML
"public.html"
でそれらをインポートできますが、おそらくそのタイプが であるためObjC.import('CoreServices')
、それらの文字列値CFString[Ref]
に (簡単に) アクセスできません
返されるものの中心に
ある文字列を取得する方法をまだ見つけていObjC.unwrap($.kUTTypeHTML)
ません。機能せず、どちらも機能しませんObjC.unwrap($.kUTTypeHTML[0])
(または.deepUnwrap()
)。
私は疑問に思う:
- これを行うためのネイティブの JXA の方法があれば、私は見逃しています。
- それ以外の場合は、 toやなど、問題を解決できる関数
ObjC.bindFunction()
のバインディングを定義するために使用する方法がありませんが、ObjC 署名を変換する方法は私には明らかではありません。CFString*()
CFStringGetCString()
CFStringGetCStringPtr()
objective-c - OS X JXA 内から CFArray や CFString などの値を読み取る/強制するにはどうすればよいですか?
ObjC ブリッジを介して OSX 入力言語の読み取り/設定を試す場合は、次のようなスニペットを記述します。
すぐに、CF 型の obj 参照の戻り値を取得します。ObjC 自体では、これらを NS 値に強制できます。JavaScript for Applications でそれをどのように達成できるかについて何か感覚はありますか?
(文字列またはその他のプリミティブ値の抽出に成功していない CF オブジェクト参照の戻り値を取得しています)
macos - OS X JavaScript for Automation (JXA) を使用して「場所を開く」Apple イベントをリッスンする
OS X JavaScript for Automation (JXA) を使用しており、「場所を開く」Apple イベントをキャプチャできるようにしたいと考えています。
http://www.macosxautomation.com/applescript/linktrigger/に従って、顧客 URL ハンドラーをセットアップしました。同等のことを行うにはどうすればよいですか
JXAと?次のすべてを試しましたが、どれも実行できませんでした。
Apple の JXA ドキュメント ( https://developer.apple.com/library/mac/releasenotes/InterapplicationCommunication/RN-JavaScriptForAutomation/Articles/OSX10-10.html#//apple_ref/doc/uid/TP40014508-CH109-SW15 ) don'オープン ロケーション イベントの処理方法については議論しません。関数の外に追加するとアラートが表示される可能性があるため、スクリプトが開かれます。関数を実行して URL に渡すことができませんでした。
JXA コードを呼び出す AppleScript ハンドラを用意することで、この問題を回避していますが、これは確かに理想的とは言えません。
これについては、JXA クックブック ( https://github.com/dtinth/JXA-Cookbook )にも何も表示されませんでした。
javascript - 「runScript」関数を使用して JXA スクリプトを実行すると、パラメーターが許可されない
JXA を使用してAlfred 2のワークフローのスクリプトを作成していますが、最近、別のスクリプト内からスクリプトを実行しようとしました。スクリプト間でテキストを渡す必要があるため、パラメーターを使用することにしましたが、文字列、数値、配列など、オブジェクトではないものを渡そうとすると、エラー " Error on line 4: Error: An error occurred.
" が発生します。オブジェクトを渡すと、2 番目のスクリプト (最初のスクリプトによって実行されるスクリプト) は、渡されたオブジェクトではなく、空のオブジェクトを受け取ります。最初のスクリプトが AppleScript の場合も同じことが起こりますが、2 番目のスクリプトが AppleScript の場合は、すべて完全に機能します。osascript
コマンドラインから引数を渡すことも機能します。API が壊れているのでしょうか、それとも間違っているのでしょうか?
最初のスクリプト:
2 番目のスクリプト:
編集:
2 番目のスクリプトを次のように編集すると、ダイアログは表示されますがrunScript
、最初のスクリプトのメソッドは依然としてエラーを返します。
編集2:
パラメータのrunScript
問題以外は、関数は実際には完全に機能しているようです。エラーは実際にスローされるのではなく、スクリプト エディターによって表示されるだけであり、呼び出しの後、runScript
何も起こらなかったかのように実行が続行されます。パラメータが機能していないにもかかわらず、戻り値も完全に機能します。
Alfred 2 ワークフローに関する注意事項
Alfred 2 でコードを実行するには (検索、キーボード コマンドなどによってトリガーされます)、ファイルではなく、アプリのボックスに入力する必要があります。 コードを入力するボックスは非常に小さく、構文が強調表示されないため、コードの編集が難しく煩わしくなります。ファイルが小さい場合は問題ありませんが、ファイルが大きい場合は、短いスクリプトを使用してスクリプト ファイルを実行する方が簡単です。最も単純なオプションである Bash を試しましたが、Alfred 2 には一重引用符をエスケープするオプションがありません。また、スクリプト ライブラリを使用することもできません (私の知る限り、間違っている場合は訂正してください)。これは、コードがスクリプト バンドルに含まれておらず、必要なすべてのファイルが同じフォルダー内にある必要があるためです (エクスポートの理由により)。