ユーザーのユーザー名とパスワードを要求するログイン画面を含む BB10 アプリを開発しています。その後、ユーザーは送信ボタンを押します。
QMLを使用してUIを設計しました
ユーザーから提供された情報 (ユーザー名とパスワード) を取得し、それを Web サービスに送信して検証したいと考えています。
C++ クラスで情報を取得したいと考えています。
どうすればこれを達成できるかを誰かが提案できますか?
ユーザーのユーザー名とパスワードを要求するログイン画面を含む BB10 アプリを開発しています。その後、ユーザーは送信ボタンを押します。
QMLを使用してUIを設計しました
ユーザーから提供された情報 (ユーザー名とパスワード) を取得し、それを Web サービスに送信して検証したいと考えています。
C++ クラスで情報を取得したいと考えています。
どうすればこれを達成できるかを誰かが提案できますか?
あなたのqmlで
Button {
text: "Login"
onClicked: {
myQMLObj.login(userTextField.text,passTextField.text);
}
}
あなたの名前でhere.hpp
public:
// "Q_INVOKABLE" allows this function to be called from qml
Q_INVOKABLE void login(QString user,QString pass);
あなたの名前here.cppで
namehere::namehere(bb::cascades::Application *app)
: QObject(app)
{
QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this);
// expose C++ object in QML as an variable (so you can fire your login function
qml->setContextProperty("myQMLObj", this);
AbstractPane *root = qml->createRootObject<AbstractPane>();
app->setScene(root);
}
void namehere::login(QString user, QString pass) {
// Handle the user name & pass here
}
少なくともユーザーからデータを取得するのに役立つことを願っています。
その後、Web サービスへの送信を開始できます。
最初に、QNetworkAccessManager、QNetworkReply、おそらく JsonDataAccess を含むクラスを作成します
#include <QObject>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <bb/data/JsonDataAccess>
#include <bb/system/SystemToast>
using namespace bb::data;
using namespace bb::system;
class Member : public QObject
{
Q_OBJECT
public:
Member();
virtual ~Member();
Q_INVOKABLE void login(QString username, QString password);
private:
QNetworkAccessManager *networkManager;
QString username;
QString password;
signals:
void serverReply();
private slots:
void replyFinished(QNetworkReply*);
};
次に、クラスをQMLにロードします
qmlRegisterType<Member>("com.library", 1, 0, "Member");
を追加して、ライブラリ パッケージを QML にインポートします。
import com.library 1.0
次に、QML の attachObjects でメンバー クラスを初期化します。ログインメソッドはQ_INVOKABLE形式でそのまま呼び出すことができます。この助けを願っています。