Javascript 我们可以从Phonegap项目中调用android活动吗?
我正在开发一个android应用程序 我已经使用HTML5和javascript为android创建了一些代码。并用本机JAva创建了一个签名捕获应用程序 我想在HTML5应用程序中包含本机签名捕获编码。因为HTML5中的签名捕获对于触摸设备来说并不完美 是否可以从HTML5 phonegap android应用程序调用本机android活动???是的,这是可能的 要做到这一点,您需要将cordova lib添加到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中创建一个插件 名为
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");