我正在尝试使用PhoneGap创建可在Android,iOS和Windows Phone上运行的应用。目前,我只有Android手机,所以我不知道我在iOS和WP上是否存在问题。
我尝试了通知(警报,哔哔声和振动)和相机API。 我从Apache Cordova文档中获取了代码行。我在PhoneGap Built网站上构建了应用程序,扫描了条形码等。应用程序在手机上安装并完美启动但无效工作(例如,当我点击“Vibrate”链接时,它不会振动)。
安装和所有这些都是由我的导师完成的(我在船上),所以我猜这个部分没问题。 我检查了AndroidManifest.xml中的使用权限,没关系。
我一直在谷歌,论坛等搜索寻找答案,但到目前为止,我发现没有任何匹配或修复我的问题。这就是我发布这条消息的原因(请不要因为语言错误而非常注意,我不是英语母语者。)
提前感谢您的帮助。
编辑: 第一部手机:三星Galaxy Grand Plus(GT-I9060I),Android:4.4.4。 第二部手机:三星Galaxy S5 Prime(SM-G901F),Android:5.0.2
使用Cordova 5.0.0版。已经添加了必要的插件功能。
Apache Cordova文档中的通知代码:
<!DOCTYPE html>
<html>
<head>
<title>Notification Example</title>
<script type="text/javascript" charset="utf-8" src="cordova-1.5.0.js"></script>
<script type="text/javascript" charset="utf-8">
// Wait for PhoneGap to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// PhoneGap is ready
//
function onDeviceReady() {
// Empty
}
// Show a custom alert
//
function showAlert() {
navigator.notification.alert(
'You are the winner!', // message
'Game Over', // title
'Done' // buttonName
);
}
// Beep three times
//
function playBeep() {
navigator.notification.beep(3);
}
// Vibrate for 2 seconds
//
function vibrate() {
navigator.notification.vibrate(2000);
}
</script>
</head>
<body>
<p><a href="#" onclick="showAlert(); return false;">Show Alert</a></p>
<p><a href="#" onclick="playBeep(); return false;">Play Beep</a></p>
<p><a href="#" onclick="vibrate(); return false;">Vibrate</a></p>
</body>
答案 0 :(得分:0)
如果你有3.0.0之前的cordova版本,那么你必须在config.xml中手动包含插件,它位于resources文件夹中。 如果cordova版本是> = 3.0.0,那么您必须通过命令行包含这些本机功能。
您需要在OnDeviceReady()方法中提供诸如click,touchend,pagebeforeshow等事件。即你必须将侦听器注册到HTML元素,以便他们听取事件。
答案 1 :(得分:0)
似乎我没有使用正确版本的Apache Cordova Documention(5.0.0),而是使用旧版本。以下代码取自doc并且仅适用于vibrate(),而且再一次,playBeep()和showAlert()都没有发生任何事情。它没有意义。
我也尝试过Camera API(来自正确的doc版本)但它也没有用。我真的不明白为什么它可以振动而不是其他API。
<!DOCTYPE html>
<html>
<head>
<title>Notification Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.notification);
console.log(navigator.vibrate);
}
function alertDismissed() {
alert('Dismissed');
}
function showAlert() {
navigator.notification.alert(
'You are the winner!', // message
alertDismissed, // callback
'Game Over', // title
'Done' // buttonName
);
}
function playBeep() {
navigator.notification.beep(2);
}
function vibrate() {
navigator.vibrate(3000);
}
</script>
</head>
<body>
<p><a href="#" onclick="showAlert();
return false;">Show Alert</a></p>
<p><a href="#" onclick="playBeep();
return false;">Play Beep</a></p>
<p><a href="#" onclick="vibrate();
return false;">Vibrate</a></p>
</body>
</html>