我正在尝试使用cordova-app-preferences插件。
$( document ).ready(function() {
alert("doc ready");
function ok (value) {
alert("prefs.fetch value: "+value);
}
function fail (error) {
alert("prefs.fetch error: "+error);
}
var prefs;
try {
prefs = plugins.appPreferences;
}
catch (e) {
alert("can't find plugins.appPreferences");
}
prefs.fetch( ok, fail, "mode");
});
此操作失败(捕获)。当我逐步使用Safari调试器时,插件未定义。我正在iPhone XS cordova run ios --device
上运行它,科尔多瓦版本为8.0.0。
我的html的修订版本:
<!DOCTYPE html>
<html lang="en" >
<head>
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
<script src="js/jquery-3.3.1.min.js" type="text/javascript"></script>
<title>Login</title>
</head>
<body>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/login.js"></script>
</body>
</html>
所以问题是:我缺少什么才能获得对plugins.appPreferences的引用?
更新: 该问题似乎特定于此插件。要复制,
cordova create plugin-test com.mydomain.ptest PLUG
cd plugin-test
cordova plugin add cordova-plugin-app-preferences --save
cordova platform add ios
cordova run ios --device
(失败,需要在xcode中指定代码签名者。)
cordova run ios --device
这一次它可以构建并运行。如果我打开Safari调试窗口,则cordova.plugins为null。
现在,如果我添加另一个插件(例如phonegap-plugin-barcodescanner
)并再次运行它,则cordova.plugins存在,但仅包含barcodescanner
。
答案 0 :(得分:0)
嗯,这很奇怪,但是我发现这个特定的插件在运行时使用$ kubectl auth can-i get secrets/site-dev-tls --namespace default --as system:serviceaccount:kube-system:traefik-ingress-controller
yes
注册了自己,而我看过的其他插件则使用了windows.plugins
。