2012-06-06 15 views
6

में इसके विपरीत, तो मुझे डेस्कटॉप JavaFX एप्लिकेशन में Google मानचित्र API का उपयोग करने के तरीके पर यह tutorial मिला है।WebView से नियंत्रक तक डेटा को कैसे पास करें और जावाफ़ैक्स

बिंदु यह है कि मैं यह नहीं समझ सकता कि मैं वेबव्यू (जावास्क्रिप्ट चर, जेसन ..) से डेटा को नियंत्रक और उपाध्यक्ष से कैसे पास कर सकता हूं।

मैं टेक्स्टफ़ीट बनाना चाहता हूं कि टेक्स्टिनपुट पर स्वचालित रूप से उस पते को खोजें और वहां एक मार्कर जोड़ें (और जब मैं मार्कर इनपुट इनपुट करने के लिए मार्कर को स्थानांतरित करता हूं)। जावास्क्रिप्ट स्टैंडअलोन मेरे लिए कोई समस्या नहीं है, लेकिन मैं नहीं जानता कि कैसे JavaFX नियंत्रक या कैसे से जावास्क्रिप्ट कार्यों कॉल करने के लिए JavaFX WebView tutorial वर्गों जावास्क्रिप्ट (देशांतर, अक्षांश, आदि)

उत्तर

8

से चर वापस भेजने के लिए देखें:

  • प्रसंस्करण जावास्क्रिप्ट आदेश
  • जावास्क्रिप्ट से JavaFX को upcalls बनाना

आप JavaFX 2.1+ का उपयोग जब यह कर, के रूप में JavaFX 2.0 Javascript से upcalls के लिए पूरा समर्थन नहीं है सुनिश्चित करें जावाएफएक्स के लिए।


कैसे JavaFX नियंत्रक से जावास्क्रिप्ट कार्यों कॉल करने के लिए?

जावा कोड निष्पादित करने के लिए किया जा के बाद दस्तावेज़ लोड होने के:

webView.getEngine().executeScript("<write your javascript here>"); 

कैसे जावास्क्रिप्ट (देशांतर, अक्षांश, आदि) से चर वापस भेजने के लिए?

यहां एक सामान्य संचार नमूना है, इसे वास्तविक जावा और जावास्क्रिप्ट तर्क के साथ प्रतिस्थापित करें जिसे आप निष्पादित करना चाहते हैं।

जावा कोड:

// Add a Java callback object to a WebEngine document once it has loaded. 
webEngine.getLoadWorker().stateProperty().addListener(
    new ChangeListener<State>() { 
    @Override public void changed(ObservableValue<? extends State> ov, State oldState, State newState) { 
     if (newState == State.SUCCEEDED) { 
     JSObject win = (JSObject) webEngine.executeScript("window"); 
     win.setMember("app", new JavaApp()); 
     } 
    } 
    }); 
} 
... 
// JavaScript interface object 
private class JavaApp { 
    public void exit() { 
    Platform.exit(); 
    } 
} 

जावास्क्रिप्ट कोड (इस मामले में एक एचटीएमएल href लिए एक onclick हैंडलर में एम्बेडेड में):

<a href="about:blank" onclick="app.exit()">Exit the Application</a> 
+1

धन्यवाद। बहुत बढ़िया जवाब। –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^