Intereting Posts
Android – прокрутка по вертикали с помощью GridLayout Как просматривать localhost на устройстве Android? Proguard удаляет анонимный класс в классе Anonymous в Java Ярлык класса импорта Android Studio Сетевые потоки компонентов архитектуры Android Android, TelephonyManager, радости PhoneStateListener и входящих номеров Android sqlite CREATE TABLE, ЕСЛИ НЕ СУЩЕСТВУЕТ Android Preview M: активность воссоздается после разрешения SQLite .query (), предложение WHERE принимает только строки с двойными кавычками Возможно ли получить доступ к ресурсам в другой APK без использования поставщиков контента? Как добавить динамическую библиотеку в Android? Android Hide Soft Keyboard от EditText, не теряя курсора Collapsing CardView внутри RecyclerView при анимации Интеграция видеофайла в приложении Android в качестве фона приложения PathPattern для соответствия расширению файла не работает, если существует какой-либо период в другом месте имени файла?

Как вызвать Android-активность из PhoneGap

Я новичок в PhoneGap, и я могу реализовать базовое приложение с помощью PhoneGap, теперь, чтобы улучшить его, я хочу подключиться к PhoneGap с Android Activities, в основном я планирую вызвать метод startActivity (), используя функцию javascript.

Я пробовал связь между Android Java и Phonegap Javascript?

Но я не смог вызвать действие, вызвав силовую ошибку. Помогите мне, ожидая ответа!

Solutions Collecting From Web of "Как вызвать Android-активность из PhoneGap"

Любой вызов Java Native code вызывается без использования какого-либо плагина.

Выполните следующие шаги.

  1. Замените следующий код существующей деятельностью DroidGap.

    @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.init(); // Calling this is necessary to make this work appView.addJavascriptInterface(this, "MainActivity"); /* "this" points the to the object of the current activity. "MainActivity" is used to refer "this" object in JavaScript as in Step 3. */ super.loadUrl("file:///android_asset/www/index.html"); } 
  2. Добавьте пользовательскую функцию в текущую (эту) активность следующим образом.

     public void customFunctionCalled() { Log.e("Custom Function Called", "Custom Function Called"); } 
  3. Теперь вызовите эту функцию из кода HTML / JavaScript следующим образом.

     <script type="text/javascript"> function callNewActivity() { window.MainActivity.customFunctionCalled(); } </script> 

Это вызовет customFunctionCalled() в MainActivity .

Протестированная среда Eclipse – 3.7.2 Android 2.2 Emulator PhoneGap – 2.0.0

Представьте свои комментарии здесь, чтобы улучшить сообщение в блогах. http://phonegapexplorers.blogspot.in/2012/08/call-native-java-code-phonegap-android.html

Его трудно, не зная больше о том, что вы пытаетесь сделать точно, но идти по пути написания плагина – это, вероятно, путь. Проверять, выписываться;

http://smus.com/android-phonegap-plugins

Этот плагин может работать для вас, как есть, или дать вам хорошие указания в том, как сделать это самостоятельно.

Попробуйте создать плагины, вот пример подключаемых модулей https://github.com/phonegap/phonegap-plugins

Я пытаюсь сделать то, что вы пытаетесь сделать до этого, с обновлениями на телефоне до версии 2.0.0 и выше лучший способ сделать это с помощью плагина. Это js по телефонной книге в папке с ресурсами. Обязательно создайте элемент div с идентификатором «nativecall» и кнопкой образца, чтобы обнаружить его. Обязательно наблюдайте, как LogCat проверяет сообщения об ошибках.

  window.echo = function(str, callback) { cordova.exec(callback, function(err) { callback('Nothing to echo.'); }, "Echo", "echo", [str]); }; var app = { // Application Constructor initialize: function() { this.bindEvents(); }, // Bind Event Listeners // // Bind any events that are required on startup. Common events are: // 'load', 'deviceready', 'offline', and 'online'. bindEvents: function() { document.addEventListener('deviceready', this.onDeviceReady, false); }, // deviceready Event Handler // // The scope of 'this' is the event. In order to call the 'receivedEvent' // function, we must explicity call 'app.receivedEvent(...);' onDeviceReady: function() { app.receivedEvent('deviceready'); }, // Update DOM on a Received Event receivedEvent: function() { var abiter = $('#nativecall').html(); $("#abutton").click(function () { window.echo(abiter, function(echoValue) { alert(echoValue = abiter); // should alert true. }); }); } }; app.initialize(); 

On src добавить новый метод класса с именем службы «Echo».

  package org.apache.cordova.plugin; import org.apache.cordova.api.CallbackContext; import org.apache.cordova.plugin.AndroidActivities; import org.apache.cordova.api.CordovaPlugin; import org.json.JSONArray; import org.json.JSONException; /** * This class echoes a string called from JavaScript. */ public class Echo extends CordovaPlugin { @Override public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { if (action.equals("echo")) { String message = args.getString(0); new AndroidPublicFunction(message); //call function from AndroidActivities this.echo(message, callbackContext); return true; } return false; } private void echo(String message, CallbackContext callbackContext) { if (message != null && message.length() > 0) { callbackContext.success(message); } else { callbackContext.error("Expected one non-empty string argument."); } } }