কম্পিউটার

আইওএস এবং অ্যান্ড্রয়েডে কীভাবে ক্রস-অরিজিন যোগাযোগ সেতু তৈরি করবেন

আমি কর্মক্ষেত্রে একটি নির্দিষ্ট প্রকল্পে কাজ করছিলাম, যেখানে আমাকে বার্তাগুলির মাধ্যমে বিভিন্ন বিভিন্ন উপাদান সংযুক্ত করতে হবে। প্রত্যেকের নিজস্ব যুক্তি এবং কোড ভাষা ছিল। এটি আমাকে বিভিন্ন প্ল্যাটফর্ম যোগাযোগ সক্ষম করার সমস্ত উপায় বুঝতে চায়৷

এই নিবন্ধটির উদ্দেশ্য হল এই ক্রস-অরিজিন যোগাযোগ সেতুগুলি ব্যাখ্যা করা এবং সেগুলি অর্জনের জন্য সহজ, অথচ তথ্যপূর্ণ, উদাহরণ উপস্থাপন করা৷

এছাড়াও প্রচুর ব্রিজ puns হবে?

আপনাকে সতর্ক করা হয়েছিল।

আপনি যদি কোড দিয়ে আপনার হাত নোংরা করতে চান তবে এই নিবন্ধের নীচে GitHub সংগ্রহস্থলগুলির লিঙ্ক রয়েছে৷

সাধারণত, আপনি যে জাভাস্ক্রিপ্ট লিখবেন তা ব্রাউজারে চলবে। iOS-এ , এটি একটি UIWebView বা একটি WKWebView হতে পারে। Android-এ , একটি ওয়েবভিউ।

যেহেতু iOS প্ল্যাটফর্মগুলির মধ্যে আরও বিরক্তিকর হতে পারে, আমি প্রথমে সেখানে যোগাযোগ সেতুর বর্ণনা দেব৷

লন্ডন ব্রিজ ইজ ফলিং ডাউন (iOS)

iOS 8 এর পর থেকে, Apple UIWebView এর পরিবর্তে WKWebView ব্যবহার করার পরামর্শ দেয়, তাই নিম্নলিখিতগুলি শুধুমাত্র WKWebView-এ সেতুটিকে সম্বোধন করবে .

একটি UIWebView রেফারেন্সের জন্য, অনুগ্রহ করে এখানে যান৷

WKWebView থেকে জাভাস্ক্রিপ্টে বার্তা পাঠাতে, আপনি নীচের পদ্ধতিটি ব্যবহার করুন:


- (void)evaluateJavaScript:(NSString *)javaScriptString 
         completionHandler:(void (^)(id, NSError *error))completionHandler;

আপনার WKWebView এর মধ্যে JavaScript থেকে বার্তা পেতে, আপনাকে অবশ্যই নিম্নলিখিতগুলি করতে হবে:

  1. WKWebViewConfiguration-এর একটি উদাহরণ তৈরি করুন
  2. WKUserContentController-এর একটি উদাহরণ তৈরি করুন
  3. আপনার কনফিগারেশনে একটি স্ক্রিপ্ট বার্তা হ্যান্ডলার যোগ করুন (এই অংশটি ব্যবধান পূরণ করে)। এই ক্রিয়াটি নিম্নলিখিত পথের অধীনে উইন্ডো অবজেক্টে আপনার বার্তা হ্যান্ডলারকে নিবন্ধিত করে:window.webkit.messageHandlers.MSG_HANDLER_NAME
  4. ফাইলের শীর্ষে যোগ করে ক্লাসটিকে মেসেজ হ্যান্ডলার প্রোটোকল প্রয়োগ করুন
  5. ইমপ্লিমেন্ট userContentController:didReceiveScriptMessage (এই পদ্ধতিটি জাভাস্ক্রিপ্ট থেকে বার্তা প্রাপ্তি পরিচালনা করে)

সেতু নির্মাণ

ধরা যাক আমরা নিম্নলিখিত HTML পৃষ্ঠা সেট আপ করেছি:

<html>
  
  <head>
    <title>Javascript-iOS Communication</title>
  </head>
  
  <body>
    
    <script>
      window.webkit.messageHandlers.myOwnJSHandler.postMessage("Hello World!");
    </script>
  </body>
  
  
</html>

এবং আমাদের নেটিভ কোডে আমরা উপরে বর্ণিত ধাপগুলি বাস্তবায়ন করি:

#import <UIKit/UIKit.h>
#import <WebKit/WebKit.h>

// 4
@interface ViewController : UIViewController <WKScriptMessageHandler>

@property(nonatomic, strong) WKWebView *webview;

এবং ভায়োলা! এখন আপনার কাছে সম্পূর্ণ জাভাস্ক্রিপ্ট আছে - iOS কমিউনিকেশন!

আইওএস এবং অ্যান্ড্রয়েডে কীভাবে ক্রস-অরিজিন যোগাযোগ সেতু তৈরি করবেন
আনস্প্ল্যাশে টড ডিমারের ছবি

ক্রসিং দ্য ব্রিজ (Android)

জিনিস এখানে অনেক সহজ এবং আরো বন্ধুত্বপূর্ণ. আমাদের যোগাযোগ সেতু সেট আপ করার জন্য, শুধুমাত্র কয়েকটি ধাপ আছে:

  1. একটি WebView অবজেক্টের একটি উদাহরণ তৈরি করুন
  2. এই WebView এর ভিতরে JavaScript সক্ষম করুন (SetJavaScriptEnabled )
  3. আপনার নিজস্ব জাভাস্ক্রিপ্ট ইন্টারফেস সেট করুন (যা আপনার জাভাস্ক্রিপ্টে দৃশ্যমান পদ্ধতিগুলিকে ধরে রাখবে)
  4. যে কোনো পদ্ধতি যা আপনি আপনার জাভাস্ক্রিপ্টে প্রকাশ করতে চান তার অবশ্যই @JavascriptInterface থাকতে হবে টীকা এর ঘোষণার আগে

আগের মতই, ধরুন আমরা এই HTML ফাইলটি তৈরি করেছি:

এবং আমরা নিম্নলিখিত সহজ অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি করেছি:

এবং আপনি সেখানে যান!

আপনি এখন নিজেকে একজন নেটিভ কমিউনিকেশন নিনজা মনে করতে পারেন!

এখানে সংগ্রহস্থলগুলির লিঙ্কগুলি রয়েছে:

AndroidtoJS RepositoryiOStoJS সংগ্রহস্থল

⚠️ iOS সম্পর্কিত গুরুত্বপূর্ণ নোট ⚠️

আপনি যখন এই পয়েন্টে পৌঁছান যে আপনি আপনার WKWebView ধ্বংস করতে চান, এটি হল অত্যাবশ্যক যে আপনি আপনার স্ক্রিপ্ট বার্তা হ্যান্ডলার অপসারণ. আপনি যদি তা না করেন, স্ক্রিপ্ট বার্তা হ্যান্ডলার এখনও আপনার WKWebView-এর একটি রেফারেন্স ধরে রাখবে এবং নতুন WKWebViews তৈরি করার পরে মেমরি লিক হবে।


  1. অ্যান্ড্রয়েড, উইন্ডোজ পিসি এবং আইওএস-এ অ্যাপ্লিকেশনগুলিকে কীভাবে জোর করে ছাড়বেন

  2. এন্ড্রয়েড এবং আইওএস-এ ব্যাকগ্রাউন্ডে কীভাবে YouTube চালাবেন

  3. কিভাবে Google মানচিত্রের ভয়েস (Android এবং iOS) পরিবর্তন করবেন

  4. কিভাবে Android এবং iOS-এ Gmail ডার্ক মোড সক্ষম করবেন