2

我刚刚下载了 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需要插件来扩展 Plugin 类。Phonegap 2.7希望插件扩展“CordovaPlugin”。

快速浏览一下Phonegap github会发现,该包中甚至不再存在名为“Plugin”的类。这让我很困惑,因为WebIntent github几个月前才更新,它仍然使用插件。

我尝试将 Plugin 更改为 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 会很棒,但我似乎找不到)

4

2 回答 2

9

升级到 Phonegap 3.0 时遇到同样的问题,发现解决方案不仅是将插件更改为 CordovaPlugin,而且您还需要从导入语句中删除“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/

于 2013-09-25T20:05:56.890 回答
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找到我的替换代码的相关部分。

于 2013-06-06T16:36:10.530 回答