gpt4 book ai didi

javascript - 在 Cordova 的 HTML 中单击按钮时启动新 Activity

转载 作者:行者123 更新时间:2023-12-03 10:21:42 24 4
gpt4 key购买 nike

我需要打开新的 Activity 并执行其他功能,例如在单击 HTML 中的按钮时在 native android java 中显示 Toast。我发现了与我遇到的问题类似的问题和解决方案,但不幸的是答案没有帮助。 Start new Activity when html button clicked in Cordova

这是日志:

04-13 11:21:00.080: D/WebViewCallback(23907): onConsoleMessage
04-13 11:21:00.080: D/CordovaLog(23907): file:///android_asset/www/index.html: Line 13 : Uncaught ReferenceError: MyJSInterface is not defined

使用“扩展 CordovaActivity”的新日志:

04-14 10:21:33.544: W/ResourceType(18650): No package identifier when getting name for resource number 0x00000064
04-14 10:21:33.545: W/ResourceType(18650): No package identifier when getting name for resource number 0x00000064
04-14 10:21:34.229: W/ResourceType(18650): No package identifier when getting name for resource number 0x00000064
04-14 10:21:34.231: I/View(18650): Touch down dispatch to org.apache.cordova.CordovaWebView{41cdc4d8 VFEDH.C. .F...... 0,0-720,1230 #64}, event = MotionEvent { action=ACTION_DOWN, id[0]=0, x[0]=52.92649, y[0]=183.81734, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=5511466, downTime=5511466, deviceId=4, source=0x1002 }
04-14 10:21:34.372: W/ResourceType(18650): No package identifier when getting name for resource number 0x00000064
04-14 10:21:34.372: I/View(18650): Touch up dispatch to org.apache.cordova.CordovaWebView{41cdc4d8 VFEDH.C. .F...... 0,0-720,1230 #64}, event = MotionEvent { action=ACTION_UP, id[0]=0, x[0]=52.92649, y[0]=183.81734, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=5511610, downTime=5511466, deviceId=4, source=0x1002 }

这是我的 Java

import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import org.apache.cordova.*;

public class MainActivity extends CordovaActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.init();

appView.addJavascriptInterface(new MyJSInterface(),
"myJSInterface");
// Set by <content src="index.html" /> in config.xml
loadUrl(launchUrl);
}

//JSInterface class
public class MyJSInterface {

public MyJSInterface() {
// TODO Auto-generated constructor stub
Log.i(TAG, "constructor of jsinterface");
}

public void btnClick() {
//do something
Log.i(TAG, "HELLO");
Toast.makeText(getApplicationContext(), "HELLO", Toast.LENGTH_SHORT).show();
}
}
}

在我的 HTML 中

<!DOCTYPE HTML>
<html>
<head>
<title>PhoneGap</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
</head>
<body>
<h1>Hello PhoneGap</h1>
<button onclick="callFunction()">test</button>
</body>
<script>
function callFunction(){
MyJSInterface.btnClick();
}
</script>
</html>

最佳答案

你应该看看 Cordova plugins ,因为它提供了访问设备 native 功能的标准方法。这比按照您的自定义方式烘焙更好。

更接近这个主题,可能是这个plugin正是您想要的。

关于javascript - 在 Cordova 的 HTML 中单击按钮时启动新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29598220/

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