gpt4 book ai didi

javascript - 不调用 native 函数的普通 Cordova 插件

转载 作者:搜寻专家 更新时间:2023-11-01 08:55:29 24 4
gpt4 key购买 nike

嘿伙计们,我正在尝试让一个非常简单的自定义 cordova 插件工作,但它不工作而且非常尴尬...

我已经尝试查看 simple plugin 的 phonegap 教程以及如何implement on android ,看起来我有同样的东西,但它不工作!它应该做的就是用字符串调用 native 函数,然后 eclipse 将该字符串输出到控制台日志...,但实际上从未调用过 native 函数!

Java:

public class ListPlugin extends CordovaPlugin {

@Override
public boolean execute(String action, JSONArray args,
CallbackContext callbackContext) throws JSONException {

Log.d("CORDOVA", "!!!");
if(action.equals("showString")){
String message = args.getString(0);
Log.d("CORDOVA", message + "!!!");
}
return true
}

}

RES/XML:

<feature name="ListPlugin">
<param name="android-package" value="com.flukenetworks.networkmap.ListPlugin"/>
</feature>

JavaScript:

<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript">

alert("HERRO?");
cordova.exec(null, null, "ListPlugin", "showString", ["I hate you"]);
</script>

任何人都可以发现任何错误吗?这可能是我看不到的非常微不足道的事情......我收到 CordovaWebView 超时错误,也许这与它有关?这是 CordovaWebView 的代码,用于拉屎和咯咯笑。

public class DevicesListFragment extends Fragment{

CordovaWebView webView;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
webView = new CordovaWebView(getActivity());
webView.loadUrl("file:///android_asset/www/index.html");
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return webView;
}
}

如有任何帮助,我们将不胜感激!

最佳答案

我相信我想通了!未调用 native 代码的原因是,当我尝试调用 cordova.exec() 时,cordova 未“准备好”。

我通过添加事件监听器解决了这个问题:

 document.addEventListener("deviceready", onDeviceReady, false);

// device APIs are available
//
function onDeviceReady() {
cordova.exec(null, null, "ListPlugin", "showString", ["I hate you"]);
}

事实上,Cordova/PhoneGap 文档都建议始终使用它 - 现在我知道了!

关于javascript - 不调用 native 函数的普通 Cordova 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19325409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com