הוספת קוד javascript לקוד java של אנדרוייד.

שיווקי

New member
הוספת קוד javascript לקוד java של אנדרוייד.

האם אפשר להוסיף קטעי קוד שכתובים ב-javascript לקוד java (ביחוד של אנדרוייד).

איך ניתן לעשות כן?
תודה.
 

BravoMan

Active member
"פשוט" - אתה צריך מנוע JavaScript

מובנה בתוך היישום שלך.
אולי משהו כזה:
https://developer.mozilla.org/en/docs/Rhino

השאלה האמתית היא מה אתה מנסה לעשות.
אם אתה בונה דפדפן, ברור שזה הכיוון, אבל אם אתה סתם מעוניין לשלב חלקי קוד קיימים ומוכרים בפרויקט חדש בשפה שונה, זה יותר טרחה מתועלת.

אל תשכח: למעט דמיון מקרי לגמרי בשם, אין שום קשר בין Java ל-JavaScript.
אלא שתי שפות שונות לחלוטין שעובדות שונה לחלוטין ומעולם לא נועדו לערבוב.
 

etal2

New member
אבל הביצועים

אני משתמש ב-rhino על שרת למשהו קטן והביצועים רחוקים שנות אור מ-js שרץ בדפדפן, אני לא רוצה לחשוב כמה גרוע זה יהיה על מכשיר נייד
 

BravoMan

Active member
איזה דפדפן?

אל תשכך של-IE, Chrome, ו-FF יש מנועי JS שונים, בעלי ביצועים שונים.

אולי הוא יוכל להשתמש ה-V8 של Google במקום, הרי זה כבר מותאם ל-Android בצורה כזו או אחרת, רק שאז כנראה הוא יצטרך לעבור דרך JNI כדי להתממשק לספרייה Native.

אגב, בעוד שזה לא בדיוק הפורום לדון על כך: האם ייתכן שיש לך בעיית קונפיגורציה, או עומס על השרת שנובע מגורמים אחרים?
 

etal2

New member
לא גם על מחשב מקומי זה איטי

אמולציה של js בתוך java היא איטית גם על המחשבים של הפיתוח, איזה דפדפן אתה שואל?
כולם אפילו ie8 מהיר בהרבה. טכנולוגית הפתרון ההגיוני הוא לקמפל את ה-js לאופקודים של jvm אבל אני לא הולך לקחת על עצמי פרוייקט כזה, יש לי מה לעשות בחיים.

אצלי אני פותר את זה בעזרת caching של התוצאות אבל זה לא פתרון שמתאים לכולם.
 

שיווקי

New member
להבהרה.

האי קשר בין java ל-javascript - ברור.

אני מחפש הרצה של javascript טהור (תלוי דפדפן ומערכת הפעלה) מתוך java.
דף html שלם או קטעי קוד של javascript

(יש לי קטעי קוד נכבדים ב-javascript וכן jquery שאני משתמש בהם.
האם rhino הוא התשובה, או שזה משהו שמתיימר להיות javascript חדש ונפרד).

תודה.
 

BravoMan

Active member
עקרונית, אתה יכול לנסות לטעון את העמוד בתוך

VebView
http://developer.android.com/reference/android/webkit/WebView.html

אם מסיבות כלשהן זה לא מספק (לא ברור מה בדיוק אתה מצפה שאותם קטעי קוד יעשו), תצטרך לייבא מנוע JS שלם ליישום שלך.

rhino הוא מנוע כזה, אבל קח בחשבון שהוא לא נכתב ל-Android, ו-etal2 טוען שהוא אטי אפילו על מחשב רגיל (אין לי ניסיון אישי איתו).

עוד אפשרויות הן לשאול קוד מ-FF או Chrome בגרסת Android, אבל בכל מקרה מדובר פתרון מאוד לא פשוט, לכן השאלה האמתית היא:
מה המטרה שאתה מנסה להסיג?
האם באמת כ"כ חשוב לך להריץ דווקא JS ודווקא באפליקציה שלך?

אגב, לדעתי אתה בפורום לא נכון. עדיף שתשאל בפורום שפות תכנות. (מס' 89)
 

etal2

New member
מעבר לזה rhino לא מריץ jquery

rhino אמנם מריץ פקודות js אבל הוא לא כולל את כל סביבת הדפדפן שספריות רגילות כדוגמת jquery מצפות למצוא, אין שם html, אין שם dom או window, בקיצור זה לא עובד. אם אתה מוכן לוותר על java אז יש משהו שנקרא nodejs שמריץ js בצורה יעילה ומהירה בצד שרת אבל גם הוא לא כולל את כל סביבת הדפדפן ודורש שימוש בספריות מיוחדות שנכתבות בשבילו (למרות שאני מניח שיש פתרונות לעקוף את זה, לא ניסיתי).

כמו bravo אני חושב שאתה שואל את השאלות הלא נכונות וכנראה במקום הלא נכון, תתאר מה המטרה הסופית שאתה שואף אליה ואז אולי יוכלו לכוון אותך לשם אין טעם להתקבע על דרך מסויימת לפתרון לפני ששוקלים את כל האפשרויות.
 

etal2

New member
הפתרון כמדומני הוא אכן webview

תתעלם ממה שכתבתי על nodejs זה לא רלוונטי לאנדרואיד
 
למעלה