كيف يمكنني كتابة تطبيق iPhone بالكامل باستخدام JavaScript دون جعله مجرد تطبيق ويب؟

StackOverflow https://stackoverflow.com/questions/64420

  •  09-06-2019
  •  | 
  •  

سؤال

لا أريد أن آخذ الوقت الكافي لتعلم Obj-C.لقد أمضيت أكثر من 7 سنوات في برمجة تطبيقات الويب.ألا ينبغي أن تكون هناك طريقة لاستخدام WebView وكتابة التطبيق بالكامل في جافا سكريبت، وسحب الملفات مباشرة من موارد المشروع؟

هل كانت مفيدة؟

المحلول

لقد وجدت الجواب بعد البحث.وإليكم ما قمت به:

  1. قم بإنشاء مشروع جديد في XCode.أعتقد أنني استخدمت التطبيق القائم على العرض.

  2. اسحب كائن WebView إلى واجهتك وقم بتغيير حجمه.

  3. داخل WebViewController.m (أو الملف المسمى بشكل مشابه، اعتمادًا على اسم العرض الخاص بك)، في طريقة viewDidLoad:

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];  
    NSData *htmlData = [NSData dataWithContentsOfFile:filePath];  
    if (htmlData) {  
      NSBundle *bundle = [NSBundle mainBundle]; 
      NSString *path = [bundle bundlePath];
      NSString *fullPath = [NSBundle pathForResource:@"index" ofType:@"html" inDirectory:path];
      [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:fullPath]]];
    }
  4. أصبحت الآن أي ملفات أضفتها كموارد إلى المشروع متاحة للاستخدام في تطبيق الويب الخاص بك.لقد حصلت على ملف Index.html يتضمن جافا سكريبت وCSS وملفات الصور دون أي مشاكل.القيد الوحيد الذي وجدته حتى الآن هو أنني لا أستطيع إنشاء مجلدات جديدة، لذا فإن جميع الملفات تشوش مجلد الموارد.

  5. حيلة:تأكد من إضافة الملف كمورد في XCode وإلا فلن يكون الملف متاحًا.لقد قمت بإضافة ملف فارغ في XCode، ثم قمت بسحب الملف الخاص بي إلى الأعلى في أداة البحث.لقد كان هذا يعمل بالنسبة لي.

ملحوظة:أدرك أن تعلم Obj-C ليس بهذه الصعوبة.ولكن نظرًا لأن هذا التطبيق موجود بالفعل في JS وأعلم أنه يعمل في Safari، فهذه دورة تطوير أسرع بكثير بالنسبة لي.في يوم من الأيام، أنا متأكد من أنني سأضطر إلى الانهيار وتعلم Obj-C.

بعض الموارد الأخرى التي وجدتها مفيدة:

استدعاء Obj-C من جافا سكريبت: استدعاء الهدف-ج من جافا سكريبت

استدعاء جافا سكريبت من Obj-C: تطوير تطبيقات الايفون لقراصنة الويب

قراءة الملفات من حزمة التطبيق: uiwebview

نصائح أخرى

تحقق من PhoneGap في http://www.phonegap.com يزعمون أنه يسمح لك بتضمين JavaScript وHTML وCSS في تطبيق iPhone الأصلي.

بالنسبة لأولئك الذين يقومون بذلك على iPhone 2.1 (ربما 2.0)، لن تحتاج إلى إنشاء أي خدمات خاصة لتخزين البيانات المحلية.يبدو أن MobileSafari يدعم واجهة برمجة تطبيقات قاعدة بيانات HTML5/WHATWG SQL.هذه هي نفس واجهة برمجة التطبيقات التي تدعمها الإصدارات الحديثة من Safari وFirefox لسطح المكتب.

إذا كنت تستخدم مجموعة أدوات مثل Dojo أو ExtJS التي توفر تجريدًا للتخزين، فيجب أن تعمل التعليمات البرمجية الخاصة بك على أي متصفح حديث تقريبًا، بما في ذلك MobileSafari.

للاختبار، افتح http://robertsanders.name/dev/stackoverflow/html5.html على اي فون الخاص بك.

إذا قمت بفتح تلك الصفحة ثم نظرت إلى نظام ملفات Jailbroken iPhone، فيجب أن تشاهد قاعدة بيانات في مكان ما في /private/var/mobile/Library/WebKit/Databases/.يوجد أيضًا دليل لقواعد البيانات المفتوحة على الويب هناك.

الجذر# sqlite3/private/var/mobile/library/webkit/databases/databases.db sqlite الإصدار 3.5.9

sqlite>.


0 رئيسي /private/var/mobile/Library/WebKit/Databases/Databases.db

سكليتي> .الجداول

أصول قواعد البيانات

sqlite> حدد * من قواعد البيانات؛

1|http_robertsanders.name_0|NoteTest|قاعدة البيانات|مثال لواجهة برمجة التطبيقات|20000|0000000000000001.db

sqlite> حدد * من الأصول؛

http_robertsanders.name_0|5242880

يمكنك إنشاء تطبيق دون معرفة أي كائن obj-C.يتيح لك إطار عمل QuickConnectiPhone القيام بذلك.الدفع http://tetontech.wordpress.com لمعرفة كيفية استخدامه بالإضافة إلى طرق أخرى للقيام بما طلبته.

يجب أن يكون لديك الغلاف الأصلي مكتوبًا في Objective C.يمكن أن يحتوي هذا المجمع على بضعة أسطر من التعليمات البرمجية (مثل، 10) اللازمة لإنشاء WebView والانتقال به إلى العنوان المحدد على الإنترنت (حيث يوجد التطبيق الخاص بك).ولكن في هذه الحالة، يجب أن يكون التطبيق الخاص بك عبارة عن تطبيق ويب كامل الميزات (أعني، لا تستخدم JavaScript فحسب، بل تستخدم أيضًا بعض HTML للترميز).

لقد واجهت نفس المشكلة.لدي بالفعل لعبة مكتوبة بالكامل بلغة Javascript.أرغب في إنشاء نسخة متوافقة مع iPhone، لكن Obj-C مبالغة.ما انتهى بي الأمر إلى فعله هو استخدام WebView للإشارة إلى عنوان URL خاص لتطبيق iPhone.بعد التفكير في الأمر، أفترض أنه يمكنني فقط نقل هذه الملفات إلى دليل التطبيق وتشغيلها محليًا.

لا توجد طريقة للقيام بذلك باستخدام واجهة برمجة تطبيقات Apple الحالية.أقرب رهان لك هو كتابة تطبيق iPhone أصلي بسيط يتضمن متصفح webkit.سيتيح لك ذلك تصفح تطبيق xhtml/js محليًا.

إذا كنت تريد تخزين البيانات، فستحتاج إلى اتخاذ خطوة أخرى إلى الأمام وتضمين خادم http خفيف الوزن يعمل على تشغيل تطبيقك ويوفر مكالمات لتخزين البيانات واستردادها.ربما لا يكون هذا حلاً مثاليًا بالنسبة لك، ولكنه ربما يكون أقل عملاً من تطبيق Obj-C الكامل.

كملاحظة جانبية، Obj-C سهل التعلم إلى حد ما.هناك الكثير من الأمثلة في SDK.المجتمع قوي وسيجيب على الأسئلة المطروحة بشكل جيد دون تردد.

نظرة على الجديد كتاب أورايلي في هذا الشأن

لقد كنت أستخدم phonegap منذ فترة ويبدو أنه حقق أفضل النتائج بالنسبة لي.سأقوم بنشر تجربتي خلال أسبوع أو نحو ذلك مع رابط لتطبيقي أيضًا.

تيتانيوم موبايل يعد أيضًا خيارًا - فهو يسمح لك بكتابة JavaScript التي تتم ترجمتها إلى Objective-C.

ذكر شخصان آخران على الأقل phonegap، لكنني اعتقدت أنني سأنشر هذا أيضًا وأذكر أن Apple قد وافقت على إطار عمل phonegap.لذلك، الآن لن يتم رفض تطبيقك من قبل Apple لمجرد أنك تستخدم phonegap.

مشاركة مدونة حول phonegap وApple - http://blogs.nitobi.com/jesse/2009/11/20/phonegapp-store-approval/

هاتف فجوة الصفحة الرئيسية

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top