কয়েকটি গ্রন্থাগার রয়েছে, তবে আমি বড় প্রকল্পগুলিতে এর কোনও ব্যবহার করি নি, তাই আপনি এগুলি চেষ্টা করে দেখতে পারেন:
-
তবে আমি মনে করি এটি এত সহজ কিছু যা আপনি নিজেই চেষ্টা করে দেখতে পারেন। যখন আমার এটি করার দরকার হয়েছিল তখন আমি ব্যক্তিগতভাবে ঠিক এটি করেছি। আপনি আপনার প্রয়োজন অনুসারে একটি সাধারণ গ্রন্থাগারও তৈরি করতে পারেন।
1. উদ্দেশ্য-সি থেকে জেএস পদ্ধতি কার্যকর করুন
এটি কোডের একমাত্র লাইন।
NSString *returnvalue = [webView stringByEvaluatingJavaScriptFromString:@"your javascript code string here"];
অফিসিয়াল ইউআইউইউভিউ ভিউ ডকুমেন্টেশন সম্পর্কে আরও বিশদ ।
২. জেএস থেকে উদ্দেশ্যমূলক-সি পদ্ধতিগুলি কার্যকর করুন ute
এটি দুর্ভাগ্যক্রমে কিছুটা জটিল, কারণ ম্যাক ওএসএক্স-তে একই উইন্ডো স্ক্রিপ্টঅবজেক্ট সম্পত্তি (এবং শ্রেণি) নেই যা দুজনের মধ্যে সম্পূর্ণ যোগাযোগের অনুমতি দেয়।
তবে, আপনি সহজেই জাভাস্ক্রিপ্ট কাস্টম তৈরি ইউআরএল থেকে কল করতে পারেন:
window.location = yourscheme://callfunction/parameter1/parameter2?parameter3=value
এবং এটির সাথে এটি উদ্দেশ্য-সি থেকে বিরত করুন:
- (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
}
}
এটি যতটা পরিষ্কার হতে পারে তেমন পরিষ্কার নয় (বা উইন্ডোস্ক্রিপ্টঅবজেক্ট ব্যবহার করে) তবে এটি কাজ করে।
৩.উজেক্টিভ-সি থেকে নেটিভ জেএস ইভেন্টগুলি শুনুন (উদাহরণস্বরূপ ডোম প্রস্তুত ইভেন্ট)
উপরের ব্যাখ্যা থেকে, আপনি দেখতে পাচ্ছেন যে আপনি যদি এটি করতে চান তবে আপনাকে কিছু জাভাস্ক্রিপ্ট কোড তৈরি করতে হবে, আপনি যে ইভেন্টটি পর্যবেক্ষণ করতে চান তার সাথে এটি সংযুক্ত করতে হবে এবং সঠিক window.location
কলটিকে বাধা দেওয়ার জন্য কল করতে হবে।
আবার, পরিষ্কার হওয়া উচিত যেমনটি হওয়া উচিত নয়, তবে এটি কাজ করে।