Phonegap的WebIntent插件:找不到导入org.apache.cordova.api.Plugin

时间:2013-06-04 19:59:07

标签: android plugins android-intent cordova

我刚下载了phonegap的WebIntent插件,但在设置时立即遇到错误。 WebIntent.java的前几行是

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希望插件扩展插件类。 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);
        }
    }

“success(...)”不是CordovaPlugin中的函数,并且没有类似的功能。

有人能想出解决这个问题的方法吗?或者是否有我遗失的信息? (一个更新的WebIntent版本会很棒,但我似乎找不到一个)

2 个答案:

答案 0 :(得分:9)

升级到Phonegap 3.0时遇到同样的问题,找到的解决方案不仅是将插件更改为CordovaPlugin,而且还需要从import语句中删除“api”。

更改

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/

答案 1 :(得分: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

我按照这些说明操作,您可以在https://github.com/phonegap/phonegap-plugins/issues/1047找到WebIntent.java替换代码的相关部分。