如何获得对cordova插件的引用?

时间:2019-04-20 16:59:41

标签: ios cordova plugins

我正在尝试使用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

1 个答案:

答案 0 :(得分:0)

嗯,这很奇怪,但是我发现这个特定的插件在运行时使用$ kubectl auth can-i get secrets/site-dev-tls --namespace default --as system:serviceaccount:kube-system:traefik-ingress-controller yes 注册了自己,而我看过的其他插件则使用了windows.plugins