我用cordova为Android平台制作了一个应用。 在index.html的设备就绪事件中,我从外部网站加载页面:
window.open('https://www.miosito.it/camera.php', '_self', 'location=no,clearcache=yes,toolbar=no');
在此页面(camera.php)中,我想访问设备摄像头以拍照,但navigator.camera未定义。
该插件已正确加载到应用程序中,因为在cordova主页index.html中的OnDeviceReady事件上,该对象存在并且可以正常工作。
var app = {
token: undefined,
// Application Constructor
initialize: function() {
document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
},
// deviceready Event Handler
//
// Bind any cordova events here. Common events are:
// 'pause', 'resume', etc.
onDeviceReady: function() {
this.receivedEvent('deviceready');
console.log(JSON.stringify(navigator));
// here it works!!!
我错了吗?
这是我使用的软件版本:
cordova: 8.1.2 (cordova-lib@8.1.1)
cordova-plugin-badge 0.8.8 "Badge"
cordova-plugin-camera 4.0.3 "Camera"
cordova-plugin-device 2.0.2 "Device"
cordova-plugin-fcm 2.1.2 "FCMPlugin"
cordova-plugin-file 6.0.1 "File"
cordova-plugin-inappbrowser-camera 1.1.0 "InAppBrowser"
cordova-plugin-media 5.0.2 "Media"
cordova-plugin-media-capture 3.0.2 "Capture"
cordova-plugin-whitelist 1.3.3 "Whitelist"
有什么主意吗?
谢谢
答案 0 :(得分:1)
由于它是Cordova项目环境之外的外部网页,因此在加载外部页面后将无法使用Cordova插件。基本上,您的window.open
命令会完全取代您的Cordova环境。