Objective-C についての知識はほとんどありませんが、Cordova (PhoneGap) を使用して Web アプリを作成しており、InAppBrowser プラグインによって送信されたヘッダーを操作する必要がありました。
リクエストと共に送信するカスタム ヘッダーを取得できました。NSURLRequest を NSMutableURLRequest に変更し、次のようなカスタム ヘッダーを設定しました。
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
[request setValue:@"test" forHTTPHeaderField:@"Accept-Encoding"];
次の問題は、javascript からヘッダーを渡すことでした。パラメータにオプションを追加しました。パラメーターは、ヘッダーを操作できる場所に到達する前に、いくつかの関数 (またはメソッド?) 間で渡す必要があります。いくつかの関数を介してそれらを渡すことができました.NSLogは、JavaScriptから送信した正しい値をまだ表示していますが、最後のハードルに落ちました. 最終関数に追加のパラメーターを渡すことができません!
ここにこのコードがあります:
[self.inAppBrowserViewController navigateTo:url withHeaders:headers ];
次のように定義された navigateTo 関数を呼び出します。
- (void)navigateTo:(NSURL*)url withHeaders:(NSString*)headers
{
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];
[request setValue:@"test" forHTTPHeaderField:@"Accept-Encoding"];
if (_userAgentLockToken != 0) {
[self.webView loadRequest:request];
} else {
[CDVUserAgentUtil acquireLock:^(NSInteger lockToken) {
_userAgentLockToken = lockToken;
[CDVUserAgentUtil setUserAgent:_userAgent lockToken:lockToken];
[self.webView loadRequest:request];
}];
}
}
私が抱えている問題は、navigateTo を呼び出す行で次のエラーが表示されることです。