कुछ पुस्तकालय हैं, लेकिन मैंने इनमें से किसी भी बड़ी परियोजना का उपयोग नहीं किया है, इसलिए आप इन्हें आज़माना चाहते हैं:
-
हालाँकि, मुझे लगता है कि यह काफी सरल है कि आप इसे स्वयं आजमा सकते हैं। जब मैंने ऐसा करने की जरूरत पड़ी तो मैंने व्यक्तिगत रूप से ऐसा किया। आप एक साधारण पुस्तकालय भी बना सकते हैं जो आपकी आवश्यकताओं के अनुरूप हो।
1. ऑब्जेक्टिव-सी से जेएस तरीकों का निष्पादन करें
यह वास्तव में कोड की सिर्फ एक पंक्ति है।
NSString *returnvalue = [webView stringByEvaluatingJavaScriptFromString:@"your javascript code string here"];
आधिकारिक UIWebView प्रलेखन पर अधिक जानकारी ।
2. जेएस से उद्देश्य-सी तरीकों का निष्पादन
यह दुर्भाग्य से थोड़ा अधिक जटिल है, क्योंकि मैक ओएसएक्स पर मौजूद समान विंडोस्क्रिप्टऑबजेक्ट प्रॉपर्टी (और क्लास) दोनों के बीच पूर्ण संचार की अनुमति नहीं है।
हालाँकि, आप आसानी से जावास्क्रिप्ट कस्टम-निर्मित URL से कॉल कर सकते हैं, जैसे:
window.location = yourscheme://callfunction/parameter1/parameter2?parameter3=value
और इसे इसके साथ Objective-C से इंटरसेप्ट करें:
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSURL *URL = [request URL];
if ([[URL scheme] isEqualToString:@"yourscheme"]) {
// parse the rest of the URL object and execute functions
}
}
यह उतना साफ नहीं है जितना होना चाहिए (या windowScriptObject का उपयोग करके) लेकिन यह काम करता है।
3. उद्देश्य-सी (उदाहरण के लिए डोम तैयार घटना) से देशी जेएस घटनाओं को सुनें
उपरोक्त स्पष्टीकरण से, आप देखते हैं कि यदि आप ऐसा करना चाहते हैं, तो आपको कुछ जावास्क्रिप्ट कोड बनाने होंगे, इसे उस घटना से संलग्न करें जिसे आप मॉनिटर करना चाहते हैं और window.location
फिर कॉल करने के लिए सही कॉल करें।
फिर से, जैसा कि होना चाहिए, साफ नहीं है, लेकिन यह काम करता है।