2015-05-27 4 views
1

Я работаю над гибридным приложением Android cordova и смотрю теперь лучший способ вызвать функцию javascript из родного android и получить результат.Android, родной для JavaScript Коммуникация через cordova

Я могу назвать функцию javascript от loadUrl("Javascript:someFunction()") от CordovaWebView. Но как я могу получить результат от этой функции.

Есть ли какой-либо предпочтительный способ использования cordova в этом.

+0

Я не уверен, я понимаю: какой родные к яваскрипту коммуникации вы ищете? Javascript в кордове используется практически так же, как и в обычных приложениях. У него готовое устройство и некоторые другие вещи, но в противном случае ...? – trainoasis

+0

Предположим, что в javascript есть функция вроде ниже, которая возвращает некоторое значение. ex: function myFunction (p1, p2) { return p1 * p2; // Функция возвращает произведение p1 и p2 }, поэтому мой вопрос заключается в том, как я могу вызвать эту функцию из cordovaWebview и поймать результат на собственной стороне. – karthik

ответ

0

Вы не можете получить непосредственно результат loadUrl. Вы можете выставить интерфейс Javascript с помощью WebView, вижу эту страницу для подробностей: http://developer.android.com/reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object, java.lang.String)

Обратите внимание, что методы Java, что Javascript будет называть могут возвращать значение, так что связь есть только быть асинхронным в одну сторону.

0

использовать следующий код, чтобы получить уры работы ..

webView.setWebChromeClient(new WebChromeClient() { 

       @Override 
       public boolean onJsAlert(WebView view, String url, 
         String message, JsResult result) { 

        // use message obj to get the result return by someFunction() function.. 
        result.confirm(); 
        return true; 
       } 
      }); 

      webView.loadUrl("javascript:alert(someFunction())"); 
+0

Спасибо за ответ, но это работа вокруг, я ищу способ, который любой предпочтительный путь дал кордове. – karthik

+0

@ karthik там должен быть какой-то альтернативный способ для кордовы тоже .. что вам нужно сделать, чтобы удовлетворить потребность ур - это получить результат в переменной в javascript и вернуть ее к некоторой функции обратного вызова ... – mithileshssingh

Смежные вопросы