Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我们可以从Phonegap项目中调用android活动吗?_Javascript_Android_Cordova_Html5 Canvas - Fatal编程技术网

Javascript 我们可以从Phonegap项目中调用android活动吗?

Javascript 我们可以从Phonegap项目中调用android活动吗?,javascript,android,cordova,html5-canvas,Javascript,Android,Cordova,Html5 Canvas,我正在开发一个android应用程序 我已经使用HTML5和javascript为android创建了一些代码。并用本机JAva创建了一个签名捕获应用程序 我想在HTML5应用程序中包含本机签名捕获编码。因为HTML5中的签名捕获对于触摸设备来说并不完美 是否可以从HTML5 phonegap android应用程序调用本机android活动???是的,这是可能的 要做到这一点,您需要将cordova lib添加到android项目中,并通过扩展plugin类在android中创建一个插件 名为

我正在开发一个android应用程序

我已经使用HTML5和javascript为android创建了一些代码。并用本机JAva创建了一个签名捕获应用程序

我想在HTML5应用程序中包含本机签名捕获编码。因为HTML5中的签名捕获对于触摸设备来说并不完美

是否可以从HTML5 phonegap android应用程序调用本机android活动???

是的,这是可能的

要做到这一点,您需要将cordova lib添加到android项目中,并通过扩展
plugin
类在android中创建一个插件

名为
execute()
的重写方法可以从Java脚本中调用

请记住,您需要定义包含execute文件夹的类到
config.xml
的路径

请访问下面的完整指南


任何Java本机代码调用都可以在不使用任何插件的情况下调用,如下所示

    public void customFunctionCalled() {
    Log.e("Custom Function Called", "Custom Function Called");
}
<script type="text/javascript">
function callNewActivity() {
    window.MainActivity.customFunctionCalled();
}
遵循以下步骤

1) 用现有的DroidGap活动替换以下代码

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    super.init(); // Calling this is necessary to make this work
    appView.addJavascriptInterface(this, "MainActivity");

    /* "this" points the to the object of the current activity. "MainActivity" is used to refer "this" object in JavaScript as in Step 3. */

    super.loadUrl("file:///android_asset/www/index.html");
}
2在当前(此)活动中添加自定义函数,如下所示

    public void customFunctionCalled() {
    Log.e("Custom Function Called", "Custom Function Called");
}
<script type="text/javascript">
function callNewActivity() {
    window.MainActivity.customFunctionCalled();
}
3现在从HTML/JavaScript代码中调用此函数,如下所示

    public void customFunctionCalled() {
    Log.e("Custom Function Called", "Custom Function Called");
}
<script type="text/javascript">
function callNewActivity() {
    window.MainActivity.customFunctionCalled();
}

函数callNewActivity(){
window.MainActivity.customFunctionCalled();
}

我已经使用过很多次了,它运行得很好,您一定犯了一些错误。您是否使用java代码,因为它确保代码中有以下三行,并且顺序相同super.init();//调用此函数是使appView.addJavascriptInterface(此为“MainActivity”);/*“this”指向当前活动的对象。“MainActivity”用于在JavaScript中表示“this”对象,如步骤3所示。*/super.loadUrl(“file:///android_asset/www/index.html");