2013-08-27 8 views
8

के साथ ब्राउजर से डेटा भेजने के लिए कैसे ऑनलाइन उपलब्ध कोई ट्यूटोरियल कोई क्यूटी एचटीएमएल 5 एप्लीकेशन बनाने का तरीका दिखाता है। आदर्श रूप में, मुझे वेबकिट और क्यूटी के बीच डेटा भेजने के लिए एक तरीका चाहिए (एक स्ट्रिंग करेगा)।एक क्यूटी एचटीएमएल 5 एप्लीकेशन

जब मैं एक क्यूटी एचटीएमएल 5 आवेदन बनाने यह

  1. myApp.pro उत्पन्न
  2. html5applicationviewer.pri // टिप्पणी न इस फाइल को स्पर्श कहते हैं कि
  3. html5applicationviewer.h // टिप्पणी न इस फाइल को छूने का कहना है
  4. html5applicationviewer.cpp // टिप्पणी न इस फाइल को स्पर्श कहते हैं कि
  5. main.cpp
  6. index.html

तो मैं ब्राउजर के साथ संवाद करने के लिए सी ++ में एक फ़ंक्शन कैसे जोड़ूं और सी ++ के साथ संवाद करने के लिए ब्राउज़र में फ़ंक्शन कैसे जोड़ूं?

उत्तर

17

This example पुराना है लेकिन अभी भी काम करता है और यह बहुत ही सरल और साफ है।

इसके अलावा आप qtwebkit-bridge और tutorial पर एक नज़र डालना चाहेंगे।

संपादित

एक फ़ाइल बुलाया myclass.h

#include "html5applicationviewer/html5applicationviewer.h" 

class MyClass : public Html5ApplicationViewer 
{ 
    Q_OBJECT 
public: 
    explicit MyClass(QWidget *parent=0); 
private slots: 
    void addToJavaScript(); 
public slots: 
    QString test(const QString &param); 
}; 

जोड़ने अपने .pro में एक फ़ाइल myclass.cpp

#include <QDebug> 
#include <QGraphicsWebView> 
#include <QWebFrame> 

#include "myclass.h" 

MyClass::MyClass(QWidget *parent) : Html5ApplicationViewer(parent) { 
    QObject::connect(webView()->page()->mainFrame(), 
      SIGNAL(javaScriptWindowObjectCleared()), SLOT(addToJavaScript())); 
} 

void MyClass::addToJavaScript() { 
    webView()->page()->mainFrame()->addToJavaScriptWindowObject("MyClass", this); 
} 

QString MyClass::test(const QString &param) { 
    qDebug() << "from javascript " << param; 
    return QString("from c++"); 
} 

बुलाया जोड़ने

SOURCES += main.cpp myclass.cpp 
HEADERS += myclass.h 

अपने .html में अपने main.cpp ऐड में जोड़ने

try { 
    alert(MyClass.test("test string")); 
} catch(err) { 
    alert(err); 
} 

में शामिल हैं:

#include "myclass.h" 

और परिवर्तन:

Html5ApplicationViewer viewer; 

रहे हैं:

MyClass viewer; 
+0

यकीन नहीं है कि यह उत्तर अभी तक क्यों स्वीकार नहीं किया गया !! धन्यवाद, यह मेरे लिए बहुत मददगार था, मुझे नहीं लगता कि addToJavaScriptWindowObject को आपके द्वारा वर्णित तरीके से Html5AplicationViewer के लिए प्रलेखित किया गया है। महान :) – mamod

+0

मैं अंततः इस परियोजना पर वापस आ गया और आपके निर्देश पूरी तरह से काम किया। पहला प्रयास! – user1873073

+0

सही उत्तर! –