أعجوبة

البرمجيات الحُرة والمفتوحة المصدر

أدوات المستخدم

أدوات الموقع


Action disabled: backlink
thawab-pri:hyper-desktop-webapp

تطبيق ويب هجين

الاستفادة من svg لتعويض الفلاش

عمل بروتوكول خاص

نريد عمل بروتوكول خاص يتحدث مع تطبيق wsgi مباشرة دون tcp/ip. بنفس الطريقة التي تستخدم فيها المتصفحات العنوان about: ويسمى هذا في مصطلح webkit باسم custom schema

(10:43:06 PM) dydx_: You want to support custom schemes/protocols (i.e.: myCustomScheme://blahblah.blah)

تخصيص navigation request لا يصلح لأنه لا يعالج حالات ajax حيث نطلب التحديث عبر XMLHttpRequest

تخصيص download request لم ينجح

البحث في غوغل لم يعطي شيء. أمثلة على أسئلة تم تجاهلها

كيف فعلتها apple على مستوى النظام

كيف فعلتها kde في man:bash عبر plugin

كيف فعلتها qt وهي الطريقة الصحيحة

لكنها لا تصلح في gtk لأن page غير متوفرة.

بعد المتابعة على #webkit-gtk تبين أنه غير مدعوم. لكن سيتم إضافة الدعم بعد حل

التخاطب بين جافاسكربت ولغة أخرى مكملة

من الأمثلة عليه pyjavascriptcore لكنه لا يزال يحبو في بدايته حيث لا يوجد منه حزم جاهزة ..إلخ

حيلة جميلة غير مكلفة

الطريقة المذكورة في هذه المقالة من أذكى الطرق التي لا تحتاج أي أمور خارجية

يتم الإرسال من بايثون إلى جافاسكربت بواسطة

browser.execute_script(script)

وهذا أمر عادي.لكن ما هو غير عادي هو الطريقة التي نرسل فيها من جافاسكربت إلى بايثون وذلك عبر استدعاء send والتي نمرر لها نص (يمكن إرسال أي كائن عبر تحويله إلى نص json) دالة send بكل بساطة تغير العنوان في المتصفح وطرف بايثون يتم تصيد تغيير العنوان ثم معالجة النص المستلم (يمكن تحويله إلى كائن بايثون من نص json)

function send(msg) {
    document.title = "null";
    document.title = msg;
}

توظيفها في ثواب

إن لم يكن هناك ملفات صور وغيرها نريد إرسالها عبر بروتوكول خاص بل كان تطبيقنا عبارة عن نصوص فقط (أو صور svg …إلخ) يمكن الاستغناء عن عمل خادم وفتح منفذ وذلك بأن نربط النقر على أزرار التصفح (سابق/تالي/… أو الشجرة …إلخ) كي تعمل send بالطريقة السابقة مثلا

$o.onclick(function(){send('"display","'+this.attr("href")+'"');})

عوضا عن إرسال الطلب عبر AJAX إلى الخادم.

thawab-pri/hyper-desktop-webapp.txt · آخر تعديل: 2015/04/23 03:21 بواسطة 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki