diff --git a/code/utils_misc.js b/code/utils_misc.js
index b9af509d..41b42ee4 100644
--- a/code/utils_misc.js
+++ b/code/utils_misc.js
@@ -107,11 +107,15 @@ window.rangeLinkClick = function() {
}
window.showPortalPosLinks = function(lat, lng) {
- var qrcode = '
';
- var script = '';
- var gmaps = 'gmaps';
- var osm = 'OSM';
- alert('' + qrcode + script + gmaps + ' ' + osm + '
');
+ if (android && android.intentPosLink) {
+ android.intentPosLink('https://maps.google.com/?q='+lat+','+lng);
+ } else {
+ var qrcode = '';
+ var script = '';
+ var gmaps = 'gmaps';
+ var osm = 'OSM';
+ alert('' + qrcode + script + gmaps + ' ' + osm + '
');
+ }
}
window.reportPortalIssue = function(info) {
diff --git a/mobile/AndroidManifest.xml b/mobile/AndroidManifest.xml
index 8fa22ba1..6d553718 100644
--- a/mobile/AndroidManifest.xml
+++ b/mobile/AndroidManifest.xml
@@ -2,10 +2,10 @@
+ android:versionName="0.2.1" >
diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java b/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java
new file mode 100644
index 00000000..50e33229
--- /dev/null
+++ b/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java
@@ -0,0 +1,25 @@
+package com.cradle.iitc_mobile;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.webkit.JavascriptInterface;
+
+// provide communication between IITC script and android app
+public class IITC_JSInterface {
+
+ // context of main activity
+ Context context;
+
+ IITC_JSInterface(Context c) {
+ context = c;
+ }
+
+ // send intent for gmaps link
+ @JavascriptInterface
+ public void intentPosLink(String s) {
+ Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
+ Uri.parse(s));
+ context.startActivity(intent);
+ }
+}
diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java
index 745060fa..43b23a71 100644
--- a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java
+++ b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java
@@ -13,6 +13,7 @@ public class IITC_WebView extends WebView {
private WebSettings settings;
private IITC_WebViewClient webclient;
+ private IITC_JSInterface js_interface;
// init web view
private void iitc_init(Context c) {
@@ -21,6 +22,8 @@ public class IITC_WebView extends WebView {
settings.setDomStorageEnabled(true);
settings.setAllowFileAccess(true);
settings.setGeolocationEnabled(true);
+ this.js_interface = new IITC_JSInterface(c);
+ this.addJavascriptInterface(js_interface, "android");
// our webchromeclient should share geolocation with the iitc script
// allow access by default
@@ -59,4 +62,8 @@ public class IITC_WebView extends WebView {
return this.webclient;
}
+ public IITC_JSInterface getJSInterface() {
+ return this.js_interface;
+ }
+
}