次のようなコードを使用する場合:
@implementation AppProtocolHandler
+ (無効)registerSpecialProtocol {
static BOOL inited = NO;
if (!inited) {
開始された = はい;
[NSURLProtocol registerClass:[AppProtocolHandler クラス]];
}
}
- (ボイド)ハンドルリクエスト {
NSURLRequest *request = [自己リクエスト];
// app:// 経由の場合は null ですが、http:// 経由の場合は機能します
NSLog(@"[リクエスト HTTPBody]: %@", [リクエスト HTTPBody]);
}
+ (BOOL)canInitWithRequest:(NSURLRequest *)リクエスト {
はいを返します。
}
+ (NSURLRequest *)canonicalRequestForRequest:(NSURLRequest *)リクエスト {
返品リクエスト;
}
@終わり
一部のプロトコル (例: app://
) への要求は、[request HTTPBody]
になりnull
ます。ただし、送信するとhttp://
、期待どおりにオブジェクト[request HTTPBody]
に要求データが含まれます。NSData
したがって、Javascript は次のようになります。
$.post("http://test/hello/world", {'data':"foo bar"});
そして、次のようなものではありません:
$.post("app://test/hello/world", {'data':"foo bar"});