使用 phonegap 插件需要啥?
Posted
技术标签:
【中文标题】使用 phonegap 插件需要啥?【英文标题】:What is necessary to use a phonegap plugin?使用 phonegap 插件需要什么? 【发布时间】:2016-07-26 04:39:22 【问题描述】:我正在做一个项目,我需要使用navigator.notification.alert ...
代替alert()
(因为alert()
在顶部有一个标签,上面写着index.html
)。
我正在使用适用于 ios 的 PhoneGap View 应用程序来测试该应用程序,但它不允许我调用该方法 (navigator.notification.alert()
)。
这是我所做的:
使用phonegap plugin add ...
安装插件
调用方法... .alert(...)
由于我对 Phonegap 和 Cordova 还很陌生,所以我想要一个列表,列出我实际使用这个插件所需的一切。
我需要导入任何 javascript 文件吗?有没有办法将插件导入我的 HTML?我可以列出使用 anyPhoneGap 插件需要做的所有事情吗?
更新 1
即使在创建新的 phonegap 应用程序后,我也没有收到任何 cordova.js 文件:
【问题讨论】:
【参考方案1】:尝试添加平台(它将添加插件所需的cordova.js文件)
cordova platform add android/ios
然后构建
cordova build
可能是Phonegap 问题报告了here 和here。(由于它没有添加cordova.js
文件)
请在设备准备好后调用任何插件,因为这样可以使插件可用。如果你直接调用插件,那么你可能会得到插件
undefined
。
对于示例
<!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">
// Wait for PhoneGap to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// PhoneGap is ready
//
function onDeviceReady()
// Empty
// alert dialog dismissed
function alertDismissed()
// do something
// Show a custom alert
//
function showAlert()
navigator.notification.alert(
'You are the winner!', // message
alertDismissed, // callback
'Game Over', // title
'Done' // buttonName
);
</script>
</head>
<body>
<p><a href="#" onclick="showAlert(); return false;">Show Alert</a></p>
</body>
</html>
Reference
问候。
【讨论】:
糟糕,不是phonegap.js
,而是cordova.js
【参考方案2】:
任何 phonegap 插件都会在deviceready
事件被触发后工作。因此,请确保在调用 navigator.notification.alert()
方法之前触发 deviceready
。
由于您是通过cli
添加插件,因此无需导入任何javascript 文件。如果您的 html 页面中没有 cordova.js
文件,您只需添加对文件的引用即可。
希望对你有帮助。
检查下面的项目结构
【讨论】:
但我的www
目录中没有cordova.js 文件
它应该有cordova.js文件,否则任何cordova库都不会加载到您的项目中
在我的 Update 1 中,即使 Phonegap 也不会为我生成 cordova.js 文件。有没有可以在线访问该文件的地方?
另一个问题:我是否必须为我的应用程序的每个页面使用 'deviceready' 事件侦听器?
我建议你安装cordova。 "npm install -g cordova" 并使用cordova命令创建项目最后添加平台和插件以上是关于使用 phonegap 插件需要啥?的主要内容,如果未能解决你的问题,请参考以下文章