আমি এখনই একটি ওয়েবপৃষ্ঠা তৈরি করছি এবং ভাবছি যে এইচটিএমএলতে কোনও কমান্ড ইনপুট দেওয়া সম্ভব কিনা যা কোনও ইনস্টলড উবুন্টু অ্যাপ্লিকেশন যেমন ক্রোমিয়াম, বা একটি টার্মিনাল উইন্ডো বা নটিলাস খুলবে।
এই সম্ভব ভালো কিছু হয়? ধন্যবাদ!
আমি এখনই একটি ওয়েবপৃষ্ঠা তৈরি করছি এবং ভাবছি যে এইচটিএমএলতে কোনও কমান্ড ইনপুট দেওয়া সম্ভব কিনা যা কোনও ইনস্টলড উবুন্টু অ্যাপ্লিকেশন যেমন ক্রোমিয়াম, বা একটি টার্মিনাল উইন্ডো বা নটিলাস খুলবে।
এই সম্ভব ভালো কিছু হয়? ধন্যবাদ!
উত্তর:
হ্যাঁ, আপনি আপনার উবুন্টুতে একটি নতুন প্রোটোকল হ্যান্ডলার যুক্ত করে পারেন। নিম্নলিখিত পদ্ধতি আপনাকে app://[application_name]
উবুন্টুতে প্রোটোকল হ্যান্ডলার হিসাবে অ্যাপ্লিকেশন খোলার প্রক্রিয়াটি কীভাবে নিবন্ধভুক্ত করবে তা দেখায় ।
টার্মিনাল রান:
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
স্ক্রিপ্টের জন্য এক্সিকিউট এক্সিকিউট মঞ্জুর।
এখন আপনাকে অবশ্যই উপরের স্ক্রিপ্টের জন্য একটি .ডেস্কটপ লঞ্চার তৈরি করতে হবে এবং উবুন্টুকে এই প্রবর্তনটিকে 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
এখন সবকিছু কাজ করা উচিত। এটি টার্মিনাল থেকে কাজ করে তা পরীক্ষা করতে উদাহরণস্বরূপ এই কমান্ডটি চালান:
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>
ফলাফল:
app://
হ্যান্ডলারটি ব্যবহারের আগে ওয়েবসাইটটি ব্যবহারকারীরা তাদের স্কিম হ্যান্ডলার ব্যবহারের আগে 1, 2 এবং 3 পদক্ষেপগুলি স্বয়ংক্রিয় করতে একটি স্ক্রিপ্ট সরবরাহ করতে পারেন । exec()
পিএইচপি থেকে ফাংশন ব্যবহার করে, উদাহরণস্বরূপ, সেই স্ক্রিপ্টটি ব্রাউজারে চালানোর জন্য তৈরি করা যেতে পারে।
radu
আপনার নাম পরিবর্তন করতে মনে রাখবেন appurl.desktop
। যেমন:Exec=/home/{YOUR NAME HERE}/bin/open_app.sh %u
app://shell-exec myscript.sh
যেখানে শেল-এক্সিকিউট কেবল একটি অন্য স্ক্রিপ্ট ( #!/bin/sh "$@" exec "$SHELL"
)
হ্যাঁ, একে "ওয়েব-ভিত্তিক প্রোটোকল হ্যান্ডলার" বলা হয়। আপনার ক্রোম 13 বা ফায়ারফক্স 3.0 বা তার বেশি প্রয়োজন। আমি এটি LibreOffice খুলতে ব্যবহৃত দেখেছি।
এটি কীভাবে কাজ করে সে সম্পর্কে মজিলা এবং আপডেটগুলি html5rocks উভয়েরই একটি ব্যাখ্যা রয়েছে। (ক্রোম / ক্রোমিয়ামে খুলুন chrome://settings/handlers
এবং এটি বর্তমান হ্যান্ডলারের একটি তালিকা প্রদর্শন করবে Firef ফায়ারফক্স তাদের তালিকাভুক্ত করবে about:config
))
প্রথম লিঙ্ক থেকে অংশগুলি:
নিবন্ধীকরণ
প্রোটোকল হ্যান্ডলার হিসাবে একটি ওয়েব অ্যাপ্লিকেশন সেট আপ করা কোনও কঠিন প্রক্রিয়া নয়। মূলত, ওয়েব অ্যাপ্লিকেশন কোনও প্রদত্ত প্রোটোকলের সম্ভাব্য হ্যান্ডলার হিসাবে ব্রাউজারের সাথে নিজেকে নিবন্ধিত করতে রেজিস্টারপ্রোটোকল হ্যান্ডলার () ব্যবহার করে। উদাহরণ স্বরূপ:
navigator.registerProtocolHandler("mailto",
"https://www.example.com/?uri=%s",
"Example Mail");
প্যারামিটারগুলি যেখানে:
যখন কোনও ব্রাউজার এই কোডটি কার্যকর করে, তখন এটি ব্যবহারকারীর কাছে একটি প্রম্পট প্রদর্শন করা উচিত, যা ওয়েব অ্যাপ্লিকেশনটিকে প্রোটোকলের জন্য হ্যান্ডলার হিসাবে নিবন্ধ করার অনুমতি দেওয়ার জন্য অনুমতি চায়। ফায়ারফক্স বিজ্ঞপ্তি বার অঞ্চলে একটি প্রম্পট প্রদর্শন করে।
উদাহরণ
<!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>
scheme
কেবলমাত্র কয়েকটিতে সীমাবদ্ধ। গৃহীত সমাধানটি আরও ভাল রেজোলিউশন সরবরাহ করবে (অবশ্যই কিছু টুইটের প্রয়োজন অনুসারে)।