2013-06-04 2 views
2

Я только что загрузил плагин WebIntent для телефонного разговора, но сразу же столкнулся с ошибкой при его настройке. Первые несколько строк WebIntent.java являютсяПлагин WebIntent для Phonegap: не удается найти импорт org.apache.cordova.api.Plugin

import java.util.HashMap; 
import java.util.Map; 

import org.apache.cordova.DroidGap; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.content.Intent; 
import android.net.Uri; 
import android.util.Log; 
import android.text.Html; 

import org.apache.cordova.api.Plugin; 
import org.apache.cordova.api.PluginResult; 

... 

public class WebIntent extends Plugin { 

Eclipse, признает все эти импорта за исключением

org.apache.cordova.api.Plugin

После некоторых исследований я обнаружил, что Phonegap 2.0 хочет плагинов для расширения класса Plugin. Phonegap 2.7 хочет, чтобы плагины расширяли «CordovaPlugin».

Быстрый просмотр Phonegap github показывает, что в этом пакете не существует класса под названием «Плагин». Это меня смущает, потому что WebIntent github был обновлен всего несколько месяцев назад, и он все еще использует плагин.

Я попытался изменить плагин на CordovaPlugin, где бы я мог найти его в файле. Удивительно, но большинство ошибок пропало. Однако onNewIntent метод до сих пор ошибка:

@Override 
    public void onNewIntent(Intent intent) { 
     if (this.onNewIntentCallback != null) { 
      PluginResult result = new PluginResult(PluginResult.Status.OK, intent.getDataString()); 
      result.setKeepCallback(true); 
      this.success(result, this.onNewIntentCallback); 
     } 
    } 

«успеха (...)» не является функцией в CordovaPlugin и нет никакой функции похож на него.

Может ли кто-нибудь подумать о способе решения этой проблемы? Или есть информация, которую мне не хватает? (Более современная версия WebIntent была бы фантастической, но я не могу ее найти)

+0

Детали: Я работаю с PhoneGap 2.7 и загрузить WebIntent из WebIntent GitHub (связанного в должности) – NcAdams

ответ

4

Я столкнулся с той же проблемой.

Вопрос заключается в том, что org.apache.cordova.api.plugin полностью удален с phonegap-2.7.0 и должен быть заменен на org.apache.cordova.api.CordovaPlugin.

Для получения дополнительной информации о том, как это сделать, посмотрите на http://simonmacdonald.blogspot.fr/2013/06/why-dont-my-plugins-work-in-phonegap.html.

Я выполнил следующие инструкции, и вы можете найти соответствующую часть моего кода замены для WebIntent.java по адресу https://github.com/phonegap/phonegap-plugins/issues/1047.

+0

, если вы используете phonegap-2.7.0, ваш файл webintent.js должен быть. cordova.addConstructor (функция() { window.webintent = новый WebIntent(); // обратная совместимость window.plugins = window.plugins || {}; window.plugins.webintent = window.webintent; }); }) (window.PhoneGap || window.Cordova || window.Cordova); –

+0

также сравните ваш файл WebIntent.java по ссылке https://github.com/phonegap/phonegap-plugins/issues/1047 –

+0

Я обнаружил, что «api» не существует в «org.apache.cordova» - решение Эрика работал на меня. – Dunc

9

Если бы такая же проблема с обновлением до Phonegap 3.0 и найденным решением, это не только плагин изменений для CordovaPlugin, но и вам нужно будет удалить «api» из инструкции import.

Изменить

import org.apache.cordova.api.Plugin; 
import org.apache.cordova.api.PluginResult; 

Для этого:

import org.apache.cordova.CordovaPlugin; 
import org.apache.cordova.PluginResult; 

ссылки Ответ: http://devgirl.org/2013/09/05/phonegap-3-0-stuff-you-should-know/

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