2

クライアントのために CRM を構築したところ、興味深い機能が要求されました。

顧客レコードごとに、ローカル コンピューター上に一致するファイルのディレクトリがあります。彼らは、Web アプリ内から Windows エクスプローラーでそのフォルダーを直接開く機能を望んでいます (アプリはディレクトリ/ファイルにアクセスする必要はありません。ユーザーがファイルを操作できるように、Windows エクスプローラーを起動するだけで済みます)。

これは、ブラウザーで実行されている通常の JavaScript では明らかに不可能です (ありがたいことに)。この目的のためにChrome拡張機能を構築することでこれを達成する方法があるのではないかと考えましたが、Chrome拡張機能/アプリはサンドボックス化されたファイルシステムにしかアクセスできないようで、私のニーズをまったく満たしていません. Chrome は NPAPI のサポートを中止しているため、NPAPI プラグインを構築することは問題外です。

ファイル URI もこの問題を解決しません。彼らのディスプレイは見苦しく、ドラッグ アンド ドロップも、大きなアイコンやサムネイルも、並べ替えもありません。彼らは、Windows エクスプローラーの全機能を望んでいます。


私が考えた唯一の実行可能なオプションは、ローカル node.js サーバーを作成し、そのサーバーに対して localhost CORS 要求を作成し、execノードからコマンドを実行することです。

もっと良いアイデアはありますか?

4

2 に答える 2

3

1 つの可能性は、ユーザーのオペレーティング システムにカスタム URI プロトコル ハンドラーを登録することです。openfolder://c/path/to/folderこれにより、Web ページにカスタム プロトコルを使用するリンクを含めることができitunes://ます。

簡単なGoogle 検索で、この見栄えの良いチュートリアルにたどり着きました。 httpの代わりに

欠点は、ユーザーが正しいレジストリ エントリ (または Windows 以外の他の OS に相当するもの) を設定し、小さなスクリプトをディスクにドロップするために、何らかの小さなインストーラを実行する必要があることです。ただし、提案したように node.js サーバーを実行するよりもはるかに軽量です。

リンクされたチュートリアルでは Python スクリプトを使用していますが、それでさえあなたのニーズにはおそらく過剰です。バッチファイルで十分でしょう。

編集: 1 つの追加の注意として、このようなカスタム ハンドラーを実装することのセキュリティへの影響に注意してください。任意のブラウザーの任意の Web ページがカスタム プロトコルを悪用する可能性があり、攻撃者は任意のデータをスクリプトに渡すことができます。スクリプトが、悪意のある Web ページによって挿入される可能性のある任意のコマンドを誤って実行しないようにするための措置を講じる必要があります。また、スクリプトがフォルダーのみを開き、それ以外は何も開かないようにする必要があります。

于 2013-10-02T15:48:07.423 に答える
0

それには、各顧客が node.js サーバーを実行する必要がありますが、これはあなたの場合には非現実的です。

ファイル URIを使用できます。

デフォルトでは、ブラウザはそれらを開くことを拒否します。ただし、この回答で提案されているように、顧客にLocalLinksをインストールするように依頼できます。

于 2013-10-02T15:35:08.597 に答える