summaryrefslogtreecommitdiff
path: root/app/qml
diff options
context:
space:
mode:
Diffstat (limited to 'app/qml')
-rw-r--r--app/qml/pages/WebViewPage.qml29
-rw-r--r--app/qml/pebble.qml5
2 files changed, 34 insertions, 0 deletions
diff --git a/app/qml/pages/WebViewPage.qml b/app/qml/pages/WebViewPage.qml
new file mode 100644
index 0000000..2c6fcf0
--- /dev/null
+++ b/app/qml/pages/WebViewPage.qml
@@ -0,0 +1,29 @@
+import QtQuick 2.0
+import QtQml 2.1
+import QtWebKit 3.0
+import Sailfish.Silica 1.0
+
+Page {
+ id: webviewPage
+
+ property alias url: webview.url
+
+ SilicaWebView {
+ id: webview
+ anchors.fill: parent
+
+ onNavigationRequested: {
+ console.log("navigation requested to " + request.url);
+ var url = request.url.toString()
+ if (/^pebblejs:\/\/close/.exec(url)) {
+ var data = decodeURI(url.substring(17));
+ console.log("match with pebble close regexp. data: " + data);
+ pebbled.webviewClosed(data);
+ pageStack.pop();
+ request.action = WebView.IgnoreRequest;
+ } else {
+ request.action = WebView.AcceptRequest;
+ }
+ }
+ }
+}
diff --git a/app/qml/pebble.qml b/app/qml/pebble.qml
index da3bfb5..2ff0839 100644
--- a/app/qml/pebble.qml
+++ b/app/qml/pebble.qml
@@ -41,5 +41,10 @@ ApplicationWindow
PebbledInterface {
id: pebbled
+
+ onOpenUrl: {
+ console.log("got open url: " + url);
+ pageStack.push(Qt.resolvedUrl("pages/WebViewPage.qml"), {url: url});
+ }
}
}