2017-11-06 1 views
0

私は、接続されたデバイスのシステムログをWebアプリケーション経由で読み込む方法を探しています。基本的には、ユーザーは自分のiPhone、Android、タブレットなどを接続し、system/consoleLogレベルで自分のデバイスで何が起きているのかを確認できるようにしたい。 adb logcatと同様です。これはWebアプリケーション経由であり、ローカルにインストールされたソフトウェアではありません。これはreact/nodejを使用して実現可能ですか?私はどのような技術を使うべきですか?NodejがWebアプリケーション経由で接続されたデバイスのシステムログを読み取ることは可能ですか?

答えて

1

これを達成するために必要なコンポーネントがいくつかあります。

バックエンド

  • ファイルの監視(ネイティブNode.jsのfs.watch
  • リアルタイム更新(Socket.io

フロントエンド

  • あなたが快適だ任意のフレームワーク、私はsocket.ioクライアントとReact.jsを使用しています
+0

ありがとうございます。私はすでにsocket.ioを使用しており、このプロジェクトに反応していますので、あなたが推奨するオプションが嬉しいです。 fs.watchがデバイスレベルのイベントにどのようにアクセスするのか不思議です。デバイスはファイルに書き込む必要があり、nodeJSはそのファイルを見ていますか? – Steve

0

あなたがしようとしていることは可能ですが、非常に限定された意味です。

ユーザーは、ログファイルをWebアプリケーションに手動でアップロードする必要があります。

javascriptのFileReader APIを使用して、これを行うように「尋ねる」ことができます。ここにはdemo pageがあります。

ご覧のとおり、アップロードするファイルを手動で選択してウェブサイトを指定する必要があります。プログラムでログファイルのパスを設定し、ユーザーに通知せずにログファイルを呼び出そうとすることはできません。

これは、Webアプリケーションを介して提供されるものが、ユーザーのブラウザのサンドボックスで実行されるためです。

明白なセキュリティ上の理由から、ブラウザは明示的な許可なく人の電話のローカルファイルにランダムなウェブサイトを読み書きさせません。

Node.jsの機能を使用するには、ローカルシステムファイルにアクセスするなどの機能を使用するために、アプリケーションをローカルにインストールし、「ブラウザサンドボックス」では実行しないでください。

こちらがお役に立てば幸いです。あなたがfilereader apiのより多くの例を知りたいなら、私はあなたのために何かを書くことができます。

+0

ありがとうございました。私は、ユーザーがデバイス上で何が起こっているのかをリアルタイムで確認し、それらに関連する特定のデータをフィルタリングすることを望んでいました。あなたの回答に基づいて、すでに完成したログファイルをアップロードする必要があるので、これは不可能かもしれないと思いますか?再度、感謝します! – Steve

+0

あなたがしようとしていることは、ネイティブアプリケーションにとってはるかに適しています。しかし、あなたがウェブサイトを開くたびにログファイルへのアクセスを1度許可しても問題ないのであれば、そのファイルを100回以上読むことができます。 – YAHsaves

関連する問題