我是 Android 和电话差距的新手,我正在尝试同时学习两者。下面我不仅尝试创建一个插件,还尝试查看控制从一个部分到另一个部分的流程。你不仅可以告诉我为什么我的应用程序没有输出我认为它应该输出的内容,而且你可以质疑我的逻辑并清楚我是否做错了。这是我想要做的
1:首先我有从 DroidGap 扩展的“MainActivity.java”
public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
}
}
2:如您所见,我正在从我的 java 类中调用 index.html。所以,这里是'index.html'。
<!DOCTYPE html>
<html>
<head>
<title></title>
<script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script>
<script type="text/javascript" charset="utf-8" src="BreakitPlugin.js"></script>
<script type="text/javascript">
function onBodyLoad()
{
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady()
{
window.plugins.breakitPlugin.createNavigationBar();
}
</script>
</head>
<body onload="onBodyLoad()">
</body>
</html>
3:然后是脚本文件
function BreakitPlugin() { }
BreakitPlugin.prototype.createNavigationBar = function() {
cordova.exec(null, null, "BreakitPlugin", "createNavigationBar", []); // Edited the fifth parameter
};
cordova.addConstructor(function(){
cordova.addPlugin("breakitPlugin", new BreakitPlugin());
});
4:然后是最重要和最关键的部分 从插件扩展而来的plugin.java。这是似乎不起作用的部分。我在这里尝试过设置内容视图,但它不起作用。我也尝试过 log 命令,但运行时没有显示相应的日志语句。所以,这个类中的两个函数似乎都没有被调用。顺便说一句,我的 '.html' 和 '.js' 中有 'alert' 语句,它似乎得到了正确的警告。这是代码。
public class BreakitPlugin extends Plugin {
@Override
public PluginResult execute(String action, JSONArray args, String callbackId) {
PluginResult.Status status = PluginResult.Status.OK;
String result = "";
Log.i("Execute", "Log Cat");
if (action.equals("createNavigationBar")) {
this.createNavigationBar();
}
else {
status = PluginResult.Status.INVALID_ACTION;
}
return new PluginResult(status, result);
}
public void createNavigationBar() {
//Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.vogella.com"));
//Activity act = new Activity();
//act.setContentView(R.layout.activity_main);
Log.i("Create navigation bar", "Log Cat");
}
}