এইচটিএমএল থেকে উবুন্টু অ্যাপটি খোলা সম্ভব?


16

আমি এখনই একটি ওয়েবপৃষ্ঠা তৈরি করছি এবং ভাবছি যে এইচটিএমএলতে কোনও কমান্ড ইনপুট দেওয়া সম্ভব কিনা যা কোনও ইনস্টলড উবুন্টু অ্যাপ্লিকেশন যেমন ক্রোমিয়াম, বা একটি টার্মিনাল উইন্ডো বা নটিলাস খুলবে।

এই সম্ভব ভালো কিছু হয়? ধন্যবাদ!


উইন্ডোজে এটি ছিল তবে কেবল আপনি যদি আইপিসপ্লোরার চালাতেন তবে কোনও ওয়েব পেজ কেবলমাত্র কিছুটা সার্ভার সাইড ম্যাজিকের সাথে টেক্সট হওয়ার কারণে এটি ব্রাউজারের পক্ষে সীমাবদ্ধ তা সীমাবদ্ধ করে। আমি নিশ্চিত যে কেউ কিছু নিয়ে আসবে। জাভা অ্যাপ হতে পারে?
সিম্পি সিমন

1
এই মুহুর্তে এটি খুব বিস্তৃত হওয়ায় আপনি সম্ভবত কোন পরিবেশে চলছে তা স্পষ্ট করে জানা উচিত। উদাহরণ হিসেবে বলা যায় - আপনি WebKit-WebView মধ্যে একটি HTML পৃষ্ঠার একটি পাইথন ভিত্তিক অ্যাপ্লিকেশন ইত্যাদি ইত্যাদি সংযুক্ত হতে পারে চালাতে হবে যা পারে
fossfreedom

হুম ... আমি খাঁটি এইচটিএমএল ধরে নিয়েছি @ ফসফ্রিডম>: - ডি
রিনজউইন্ড

হ্যাঁ, এটি কেবলমাত্র একটি প্রাথমিক HTML ওয়েবপৃষ্ঠা। কোন ডাটাবেস বা কিছুই।
আমি হার্ট উবুন্টু

যদি এটির কোনও সহায়তা হয় তবে সাইটটি লিনাক্স ব্যবহারকারীদের জন্য। যে কোনও এটি প্রাকৃতিকভাবে ব্যবহার করতে পারে তবে আমি লিনাক্স / উবুন্টু ব্যবহারকারীদের জন্য এটি কঠোরভাবে ডিজাইন করছি। যথেষ্ট সহজ বলে মনে হচ্ছে। ওয়েবপৃষ্ঠায় একটি লিঙ্ক থেকে টার্মিনাল বা ক্যালকুলেটরের মতো একটি উবুন্টু অ্যাপ্লিকেশন চালু করুন। উদাহরণস্বরূপ আমি যদি "apt: // ক্রোমিয়াম-ব্রাউজার" করি তবে এটি উবুন্টু সফ্টওয়্যার কেন্দ্র ক্রোমিয়াম পৃষ্ঠা খুলবে। সুতরাং আমরা জানি যে আমরা এইচটিএমএল থেকে কমপক্ষে ইউএসসি চালু করতে পারি। উবুন্টু / লিনাক্স অ্যাপগুলির কী হবে?
আই হার্ট উবুন্টু

উত্তর:


21

হ্যাঁ, আপনি আপনার উবুন্টুতে একটি নতুন প্রোটোকল হ্যান্ডলার যুক্ত করে পারেন। নিম্নলিখিত পদ্ধতি আপনাকে app://[application_name]উবুন্টুতে প্রোটোকল হ্যান্ডলার হিসাবে অ্যাপ্লিকেশন খোলার প্রক্রিয়াটি কীভাবে নিবন্ধভুক্ত করবে তা দেখায় ।

1. অ্যাপ্লিকেশন লঞ্চার স্ক্রিপ্ট তৈরি করুন

  • টার্মিনাল রান:

    mkdir -p bin
    

    binআপনার কাছে homeযদি ইতিমধ্যে এটি না থাকে তবে এই কমান্ডটি আপনার ফোল্ডারে একটি ডিরেক্টরি তৈরি করবে।

  • রান করার পরে:

    gedit ~/bin/open_app.sh
    

    এটি নতুন ফাইল তৈরি করবে open_app.sh gedit ।

  • নতুন নির্মিত ফাইলটিতে নিম্নলিখিত স্ক্রিপ্টটি অনুলিপি করুন এবং আটকান:

    #!/bin/bash
    
    if [[ "$1" != "app://" ]]; then 
        app=${1#app://}
        nohup "$app" &>/dev/null &
    else 
        nohup gnome-terminal &>/dev/null &
    fi
  • ফাইলটি সংরক্ষণ করুন এবং এটি বন্ধ করুন।

  • টার্মিনালে ফিরে যান এবং চালান:

    chmod +x ~/bin/open_app.sh
    

    স্ক্রিপ্টের জন্য এক্সিকিউট এক্সিকিউট মঞ্জুর।

2. অ্যাপ্লিকেশন লঞ্চারের জন্য .ডেস্কটপ ফাইল তৈরি করুন

এখন আপনাকে অবশ্যই উপরের স্ক্রিপ্টের জন্য একটি .ডেস্কটপ লঞ্চার তৈরি করতে হবে এবং উবুন্টুকে এই প্রবর্তনটিকে app://প্রোটোকল হ্যান্ডলার হিসাবে ব্যবহার করতে বলুন । /usr/share/applications/appurl.desktopনিম্নলিখিত কমান্ড ব্যবহার করে ফাইল তৈরি করুন:

sudo -H gedit /usr/share/applications/appurl.desktop

এবং নিম্নলিখিত সামগ্রী যুক্ত করুন:

[Desktop Entry]
Name=TerminalURL
Exec=/home/radu/bin/open_app.sh %u
Type=Application
NoDisplay=true
Categories=System;
MimeType=x-scheme-handler/app;

ফাইলটি সংরক্ষণ করুন এবং এটি বন্ধ করুন।

৩. মাইম প্রকারের ডাটাবেসটি রিফ্রেশ করুন

উপরের ফাইলে লাইন MimeType=x-scheme-handler/app;রেজিস্টার app://স্কিম হ্যান্ডলার রয়েছে তবে এটি কাজ করতে আমাদের কমান্ড কার্যকর করে মাইম প্রকারের ডাটাবেস ক্যাশে আপডেট করতে হবে:

sudo update-desktop-database 

4. টার্মিনাল থেকে পরীক্ষা

এখন সবকিছু কাজ করা উচিত। এটি টার্মিনাল থেকে কাজ করে তা পরীক্ষা করতে উদাহরণস্বরূপ এই কমান্ডটি চালান:

xdg-open 'app://gedit'

৪. এইচটিএমএল ব্যবহার করে ব্রাউজার থেকে পরীক্ষা করুন

আপনি নিম্নলিখিত HTML ওয়েব পৃষ্ঠা উদাহরণস্বরূপ ব্যবহার করে ব্রাউজার থেকে পরীক্ষা করতে পারেন:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
    <title>Open some applications</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>

<body>
        <h3>Open some applications in Ubuntu from HTML</h3>
        <p>Open terminal: <a title="Open" href="app://">app://</a>
        (equivalent with: <a title="Open" href="app://gnome-terminal">app://gnome-terminal</a>)</p>
        <p>Open Nautilus: <a title="Open" href="app://nautilus">app://nautilus</a></p>
        <p>Open Chromium: <a title="Open" href="app://chromium-browser">app://chromium-browser</a></p>
        <p>Open Ubuntu Software Center: <a title="Open" href="app://software-center">app://software-center</a>
        (equivalent with: <a title="Open" href="apt://">apt://</a>)</p>
        <p>...and so on</p>
</body>

</html>

ফলাফল:

অ্যাপ্লিকেশন: //


2
খুব খুব চমৎকার. ১ টি সামান্য সমস্যা: ওয়েবসাইটটি ব্যবহারকারীরা সেই স্ক্রিপ, লঞ্চার এবং মাইম ধরণের থাকতে পারবেন না। সুতরাং আপনাকে ওয়েবসাইট থেকে কিছু উপায়ে সরবরাহ করতে হবে। নেভিগেটর.রেজিস্টারপ্রোটোকল হ্যান্ডলারের সাথে ডাব্লু / ও সফ্টওয়্যার ইনস্টল করা সম্ভব হওয়া উচিত। তবে এটি দেখতে খুব সুন্দর দেখাচ্ছে :
ডি

@ রিনজউইন্ড ওয়েল, স্ক্রিপ্ট app://হ্যান্ডলারটি ব্যবহারের আগে ওয়েবসাইটটি ব্যবহারকারীরা তাদের স্কিম হ্যান্ডলার ব্যবহারের আগে 1, 2 এবং 3 পদক্ষেপগুলি স্বয়ংক্রিয় করতে একটি স্ক্রিপ্ট সরবরাহ করতে পারেন । exec()পিএইচপি থেকে ফাংশন ব্যবহার করে, উদাহরণস্বরূপ, সেই স্ক্রিপ্টটি ব্রাউজারে চালানোর জন্য তৈরি করা যেতে পারে।
রাদু রেদেনু

এক্সিকিউটিভ () ক্লায়েন্ট সাইড নয়, সার্ভার সাইড চালাবে। আপনি যদি ক্লায়েন্টের পক্ষ থেকে চেষ্টা করেন তবে আপনি দেখতে পাবেন যে ব্রাউজারগুলির সুরক্ষা স্ক্রিপ্টগুলি চালানো রোধ করবে
এনজিআরডস

1
শান্ত! raduআপনার নাম পরিবর্তন করতে মনে রাখবেন appurl.desktop। যেমন:Exec=/home/{YOUR NAME HERE}/bin/open_app.sh %u

@ রদুআরডিয়ানু কি কোনও অ্যাপের পরিবর্তে কোনও স্ক্রিপ্ট চালু করা সম্ভব? উদাহরণস্বরূপ app://shell-exec myscript.shযেখানে শেল-এক্সিকিউট কেবল একটি অন্য স্ক্রিপ্ট ( #!/bin/sh "$@" exec "$SHELL")
খুরশিদ আলম

5

হ্যাঁ, একে "ওয়েব-ভিত্তিক প্রোটোকল হ্যান্ডলার" বলা হয়। আপনার ক্রোম 13 বা ফায়ারফক্স 3.0 বা তার বেশি প্রয়োজন। আমি এটি LibreOffice খুলতে ব্যবহৃত দেখেছি।

এটি কীভাবে কাজ করে সে সম্পর্কে মজিলা এবং আপডেটগুলি html5rocks উভয়েরই একটি ব্যাখ্যা রয়েছে। (ক্রোম / ক্রোমিয়ামে খুলুন chrome://settings/handlersএবং এটি বর্তমান হ্যান্ডলারের একটি তালিকা প্রদর্শন করবে Firef ফায়ারফক্স তাদের তালিকাভুক্ত করবে about:config))

প্রথম লিঙ্ক থেকে অংশগুলি:

নিবন্ধীকরণ

প্রোটোকল হ্যান্ডলার হিসাবে একটি ওয়েব অ্যাপ্লিকেশন সেট আপ করা কোনও কঠিন প্রক্রিয়া নয়। মূলত, ওয়েব অ্যাপ্লিকেশন কোনও প্রদত্ত প্রোটোকলের সম্ভাব্য হ্যান্ডলার হিসাবে ব্রাউজারের সাথে নিজেকে নিবন্ধিত করতে রেজিস্টারপ্রোটোকল হ্যান্ডলার () ব্যবহার করে। উদাহরণ স্বরূপ:

navigator.registerProtocolHandler("mailto",
                              "https://www.example.com/?uri=%s",
                              "Example Mail");

প্যারামিটারগুলি যেখানে:

  • প্রোটোকল
  • হ্যান্ডলার হিসাবে ব্যবহৃত ইউআরএল টেমপ্লেট। "% S" লিঙ্কটির href দিয়ে প্রতিস্থাপন করা হয়েছে এবং ফলাফল জিআরএলে একটি জিইটি কার্যকর করা হয়।
  • প্রোটোকল হ্যান্ডলারের জন্য ব্যবহারকারী বান্ধব নাম।

যখন কোনও ব্রাউজার এই কোডটি কার্যকর করে, তখন এটি ব্যবহারকারীর কাছে একটি প্রম্পট প্রদর্শন করা উচিত, যা ওয়েব অ্যাপ্লিকেশনটিকে প্রোটোকলের জন্য হ্যান্ডলার হিসাবে নিবন্ধ করার অনুমতি দেওয়ার জন্য অনুমতি চায়। ফায়ারফক্স বিজ্ঞপ্তি বার অঞ্চলে একটি প্রম্পট প্রদর্শন করে।

উদাহরণ

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
    <title>Web Protocol Handler Sample - Register</title>
    <script type="text/javascript">
navigator.registerProtocolHandler("fake", "http://starkravingfinkle.org/projects/wph/handler.php?value=%s", "Fake Protocol");
    </script>
</head>
<body>
    <h1>Web Protocol Handler Sample</h1>
    <p>This web page will install a web protocol handler for the <code>fake:</code> protocol.</p>
</body>
</html>

খুশী হলাম। স্থানীয় অ্যাপ্লিকেশনটিতে প্যারামগুলি পাস করার কোনও উপায় আছে কি?
অ্যালিকেলজিন-কিলাকা

1
এটি ওয়েবমেলারের মতো অ্যাপ্লিকেশনগুলিকে মঞ্জুরি দেয় বলে মনে হয় তবে কোনও বাহ্যিক (স্থানীয়) অ্যাপ্লিকেশন নেই।
geek-Merlin 14 ই

এখানে এবং এখানে বিবরণ পড়ুন । এছাড়াও, প্রথম লিঙ্কে , আপনি আরও দেখতে পাবেন যে এটি schemeকেবলমাত্র কয়েকটিতে সীমাবদ্ধ। গৃহীত সমাধানটি আরও ভাল রেজোলিউশন সরবরাহ করবে (অবশ্যই কিছু টুইটের প্রয়োজন অনুসারে)।
ফ্র0zenFyr

অদ্ভুত জন্য পড়ুন W3 সাহচর্য চশমা
Fr0zenFyr
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.