का उपयोग करते समय shouldStartLoadWithRequest को कॉल नहीं किया जाता है, मैं जावास्क्रिप्ट से Objective-C और इसके विपरीत विधि आमंत्रण भेजने की कोशिश कर रहा हूं। सबकुछ खिड़की के लिए ठीक काम करता है। स्थान ने यूआरएल को ट्रिगर किया, जिसे कस्टस्टार्ट लोडविथरक्वेट द्वारा पकड़ा जाता है। अब अगर मैं इसके बजाय एक AJAX कॉल का उपयोग करने का प्रयास करता हूं, तो चाहिएस्टार्ट लोड VithRequest नहीं कहा जाता है। क्या ऐसा करने का कोई तरीका है? मुख्य रूप से मैं डेटा पर अधिकतम यूआरएल आकार तक सीमित नहीं होना चाहता हूं जिसे जावास्क्रिप्ट से ऑब्जेक्टिव-सी में पारित किया जा सकता है।AJSt/XMLHttpRequest
मेरे UIWebViewDelegate लागू करता है:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
NSString *url = [[request URL] absoluteString];
NSRange urlrange = [url rangeOfString:@"myScheme://"];
if(urlrange.length > 0){
NSLog(@"this is an objective-c call, do not load link: %@", [url substringWithRange:NSMakeRange(urlrange.location, [url length])]);
return NO;
} else {
NSLog(@"not an objective-c call, load link: ", url);
return YES;
}
}
मेरा JavaScript कॉल:
// works
window.location.href = "myScheme://readyHref";
// fails
var xmlHttpReq = false;
if (window.XMLHttpRequest) {
xmlHttpReq = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttpReq.open('GET', "myScheme://readyAJAX", false);
xmlHttpReq.send();