問題タブ [nsurlsession]
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.
cocoa-touch - 保留中の NSURLSession バックグラウンド ダウンロード タスクは、アプリを再開した直後に開始されますか?
NSURLSession
素晴らしい新しい API のようです。悲しいことに、ドキュメントはまだ不足しています。
NSURLSession
バックグラウンド モードをサポートする予定です。ユーザーが Wi-Fi 経由で接続されていて、バッテリーが十分に残っている場合にのみ、これらのタスクが Apple デーモンにダウンロードされることを読みました。したがって、いくつかのタスクをキューに入れ、前述の条件が満たされない場合、タスクは満たされるまで待機します。しかし、ユーザーがアプリケーションを開いてデータが見つからない場合はどうなるでしょうか? 保留中のタスクは、Wi-Fi がない場合やバッテリーが少ない場合でも実行されますか? それらをキャンセルして、処理中のデータ タスクとして開始する必要がありますか? プロパティは認識していdiscretionary
ますが、アプリが起動/再開されると、バックグラウンドでスケジュールされたタスクが開始されますか?
cocoa-touch - NSURLSessionキャンセルタスク
次の構成で新しい NSURLSession を作成します
ボタンを押した後、現在のすべてのダウンロードタスクを停止しようとしています。
それにもかかわらず、デリゲート メソッド didFinishDownloadingToURL で応答を受け取ります。この時点以降、新しいセッションやダウンロード タスクが作成されないことは確かです。すべてのタスクが発生しないようにする方法は?
ios - まだダウンロードされていない場合にのみ、iOS 7 でファイルのバッチをバックグラウンドで低優先度でダウンロードします
私のアプリは、次の要件を持つファイルのバッチをダウンロードする必要があります。
- バッチはある程度順番に処理する必要があります (ファイルを同時にダウンロードすることを犠牲にしてはいけません)。
- アプリが閉じられている場合、ダウンロードはバックグラウンドで続行する必要があります。
- ユーザーはいつでも他のダウンロードをトリガーする可能性があります。これらのダウンロードは、バッチよりも優先される必要があります。
- ユーザーがバッチ内の任意のファイルのダウンロードをトリガーする可能性があることを考えると、ファイルが既にダウンロードされている場合は、再度ダウンロードするべきではありません。実際のダウンロードを開始する前に、ファイルが既にダウンロードされているかどうかを確認するか、キューから削除する必要があります。
これは、多くの定型コード (ここに投稿するには多すぎる) を使用して実現できます。NSURLSession
真新しいiOS 7および/またはAFNetworking 2.0でこれを行う最も簡単な方法は何ですか?
background - NSURLSession: バックグラウンド転送によるアセットのアップロード
バックグラウンド転送を使用してギャラリーからアセットをアップロードする最良の方法は何ですか?
「キャッチされていない例外 'NSGenericException' が原因でアプリを終了しています。理由: 'バックグラウンド セッションでのタスクのアップロードはファイルから行う必要があります」という例外が発生するため、createduploadTaskWithRequest:fromData:
では機能しないようです。例外の説明から判断すると、バックグラウンド転送はストリーミング アップロード タスクでも機能しないはずです。NSURLSession
backgroundSessionConfiguration
けっこうだ。uploadTaskWithRequest:fromFile:
ディスク上に既にあるデータをアップロードすることを考えるとき、最初に頭に浮かぶのは. しかし、NSURLSession クラス リファレンスは、このメソッドがファイルの URL でのみ機能することを示していますが、アセットの URL パスを取得すると、「assets-library://asset/...」から始まり、このパスを指定しても機能しません。
したがって、残っている唯一のオプションは、ファイルをアセット ライブラリから一時ディレクトリにコピーし、そのファイルの URL を に提供することですuploadTaskWithRequest:fromFile:
。しかし、既にアセット ファイルがディスクに保存されているため、意味がありません。何か不足していますか?
アップデート:
Tech Talks イベントで Apple エンジニアと話し、バックグラウンド NSURLSession がファイル URL のみをサポートすることを確認しました。実際、アセット ライブラリを一時ディレクトリにコピーし、そのファイルの URL を提供しuploadTaskWithRequest:fromFile:
て、バックグラウンド NSURLSession でアップロードする必要があります。ただし、この動作は将来変更される可能性があります。
ios - 複数のファイルのチャンクを Amazon S3 (iOS7) にアップロードするには、backgroundConfiguration で NSURLSession をどのように使用すればよいですか?
現在、写真とビデオのセットを S3 アマゾン サーバーに送信する必要があるプロジェクトに取り組んでいます。流れは次のようになります。
-まず、API に転送を開始するように依頼し、ID を取得します (API 呼び出し)
-transfer id -> api でファイルのアップロードを要求 -> 応答として file_id (api 呼び出し)
-file id -> api でのチャンク アップロードのリクエスト -> 応答としての amazon データ (api 呼び出し)
-upload chunck -> backgroundConfiguration で構成された NSURLSession 内 (アップロードごとに 5 MB)
-最後のチャンク アップロード (API 呼び出し) の後にファイルのアップロードを終了する
-最後のファイルアップロード後に転送を終了する(API呼び出し)
アプリがバックグラウンドで実行されている場合も、API を使用して呼び出しを行う必要があります。
そこで私が考えたのは、バックグラウンドでファイルをアップロードして完了ブロックを実行できる AFNetworking 2.0 を使用することでした。
その完了ブロックでは、コードは次のようになります。
難しいのは、コードを実行したり、iOS7 のバックグラウンドでアップロード タスクを実行したりすることです。
アプリがデバッガー (Xcode) に接続されている場合、上記のサンプルが機能します。ただし、コンソールに次のエラーが表示されます。
だからそれはクールではありません:(
コードを実行し、バックグラウンドでファイルをアップロードする方法はありますか..?? これについて何か経験はありますか?? それともiOS7の多くにお願いするのでしょうか??
あなたの考えを共有できることを願っています。
ありがとう、
敬具、
バート・スクーン