3

私は Windows Phone 7 用の最も基本的なアプリケーションを作成しようとしていますが、ファイル (特に何かを変更する場合は XML) をアプリに送信できるようにしたいと考えています。現在、WCF サービスをセットアップしているので、プッシュ通知を送信できます。問題は、プッシュ通知で送信できる生データの量に制限があることです。

これに対する私の解決策は、最初のプッシュ通知 (タイルまたは生のいずれか) を送信して、ファイルを送信したいことをアプリケーションに警告し、アプリが何らかの形でサーバーと通信するようにすることです (すべてが私のパーソナル コンピューターにあります)。物事がどのように機能するかを理解しようとしているだけです)-アプリはそこからファイルを受信/ダウンロードします。

これを達成する最も簡単な方法は何ですか?私はセキュリティなどには関心がないことに注意してください。

明確化 -質問は本質的です: サーバーとの間でファイルを電話との間で転送するにはどうすればよいですか? 他のすべてが処理されたと仮定します。アプリは起動して実行されており、ユーザーは許可を与える可能性のあるすべてのものに許可を与えているか、与える予定です。

4

4 に答える 4

4

残念ながら、プッシュ通知 (HTTP ヘッダーを含む) の合計サイズは 1kb です。これは、大量のデータを送信するために使用できないことを意味します。

ファイル全体を送信する代わりに、通知 (必要に応じて生またはトースト) を送信します。これは、サーバーから新しいファイル/データなどを取得するためのトリガーとしてアプリケーションによって処理される必要があります。アプリの起動時に新しいメッセージを確認することも価値がある場合があります。ただし、アプリを起動したときに直接通知を受信する準備ができていることをサーバーに通知し、新しいコンテンツが利用可能であることを示すメッセージが送信される場合は、この追加チェックを追加する必要がない場合があります。

電話との間でファイルを転送するには、HttpWebRequestまたはWebClientのいずれかを使用する必要があります。これは、デバイスで HTTP を使用する唯一の方法であり、HTTP が現在データ転送に使用できる唯一のプロトコルであるためです。

WebClient柔軟性が低く、UI スレッドで自動的にコールバックを実行するよりも使いやすいように見えるかもしれませHttpWebRequestんが、バックグラウンドでファイルをダウンロードしている場合、これはほぼ確実に必要ありません。

接続された PC との間でファイルを転送し、アプリでのみ使用できるようにする方法はありません。

于 2011-02-23T13:22:53.883 に答える
0

まず第一に、このアプローチを自動的に行うことはできません.WP7 SDKでは、アプリをバックグラウンドで実行したり、プッシュ通知を受信すると自動的に起動したりすることが許可されていないため、ユーザーはアプリを開いてそれを行う必要があります.

この時点で、サーバーと通信する唯一の方法は Web サービスです。もし私があなたなら、アプリが開始されたら利用可能な新しい情報をチェックし、新しい情報があれば、必要なすべての情報を返す 1 つまたは複数の Web サービスを呼び出します。必要に応じて、タイマーを使用して定期的に情報を確認できます。

私が言ったように、アプリの実行中にのみ機能します (まだわからない場合は、アプリのライフサイクルを確認してください)。WP7 では、アプリをバックグラウンドで実行することはできません。

がんばれ、オスカー

于 2011-02-23T13:22:36.170 に答える
0

WebClientクラスと DownloadStringAsync メソッドを使用して、Web サービスからデータをダウンロードできます。これの良い例は、MIX10 の Scott Guthrie の Twitter アプリです

ジョージ

于 2011-02-23T20:24:12.507 に答える
0

少し話が逸れるかもしれませんが、WP7 アプリでのファイル共有について考えていたときに、次の 2 つの方法を見つけました。

  1. アプリをDropboxと統合する
  2. WP7 の高度なエクスプローラーを使用する
于 2011-02-23T16:20:31.820 に答える