Building QtWebKit for Blackberry
Setting up the environment
See Blackberry for instructions. Furthermore see Building Qt5 for Blackberry as a prerequisite.
Getting the source
We will clone the git repository of webkit from code.qt.io. Note that this takes a very long time and includes lots of test data, leading to a whopping 5GB disk space requirement for the checkout.
$ git clone git://code.qt.io/webkit/webkit.git
Building
There are two ways of building QtWebKit:
Usage/Testing
The suggested way is to build QtWebKit just like any other Qt5 module via QMake. See Building Qt5 for Blackberry on how to call QMake.
Development
There is a second process of building QtWebKit which differs from the other Qt5 modules. This is the suggested way to use when you want to develop QtWebKit. you still have to have configured your environment to use the BBNDK as described in Blackberry! Especially ensure that the QMake binary in your PATH is the Blackberry version.
$ cd webkit
$ # here <N> is the number of parallel make jobs to run. This is often set to <No. of CPU cores + 1>. adapt this
$ perl Tools/Scripts/webkit-build —qt —install-libs="$(qmake -query QT_INSTALL_PREFIX)" —makeargs="-j<N>"
This will compile QtWebKit for QNX in a folder called WebKitBuild/Release in your webkit checkout.
After this process, you should have a Qt5 QtWebKit located in your Qt install prefix (i.e. $HOME/development/qnx/qt5 or in C:stall, depending of your operating system- if you followed the other howtos).
See also
- Building Qt5 for Blackberry
- Building_and_Deploying_Qt_Applications_to_the_Playbook
- Deploying_Qt_to_a_central_place_on_Blackberry_devices
Known Issues
WebKit1/C++
QtWebKit applications using the WebKit1/C++ API are a bad fit for touch devices like the PlayBook. To simulate mouse events out of touch events, call the following on your QWebView:
webView->setAttribute(Qt::WA_AcceptTouchEvents, false);
If you do not do this, touch events are accpted and delegated to the JavaScript, but you will not be able to interact with the WebView, meaning: You cannot scroll, click links or do anything with it.
WebKit1/QML
Using QtWebKit with the old QtQuick1 QML API is currently broken. Eventually, this code will be moved from QtWebKit to the QtQuick1 module and reactivated.