将CloudKit JS添加到Vue项目

时间:2018-08-16 01:16:03

标签: vue.js vuejs2 cloudkit-web-services cloudkit-js

我正在尝试将CloudKit JS添加到新的Vue项目中。理想情况下,我可以从应用程序中的任何组件访问CloudKit的功能。我是Vue的新手,所以请放轻松。 :)

到目前为止,我已经尝试将以下内容放入main.js

var fetch = require('node-fetch')
var CloudKit = require("./cloudkit.js")

CloudKit.configure({
  services: {
    fetch: fetch
  },
  containers: [{
    containerIdentifier: '...',
    apiToken: '...',
    environment: 'development'
  }]
})

这给我在cloudkit.js中的脚本错误:

  

TypeError:无法读取未定义的属性'ArrayBuffer'

所以我读了this SO post,并在App.vue中尝试了此操作:

export default {
  name: 'App',
  components: {
    'master': Master
  },
  mounted() {
    let CloudKit = document.createElement('script')
    CloudKit.setAttribute('src', 'https://cdn.apple-cloudkit.com/ck/2/cloudkit.js')
    document.head.appendChild(CloudKit)
  }
}

然后,我可以配置CloudKit并在App.vue中使用它,但是我不清楚如何在我的所有组件中使用CloudKit,而无需像在{{1}中所做的那样重新定义它。 }函数。

如何导入CloudKit并使其在我的Vue应用程序中全局可用?

2 个答案:

答案 0 :(得分:0)

您也可以在vue中添加新的全局属性:

导入 CloudKit ,然后将其添加到 main.js 中:Vue.prototype.$CloudKit = CloudKit

现在,项目this.$CloudKit中的 Cloudkit 可用

More info here

PS:您可以在应用程序的mounted中配置cloudkit

答案 1 :(得分:0)

我可能过于简化了,但是我尝试添加:

<script src="https://cdn.apple-cloudkit.com/ck/2/cloudkit.js"></script>

...到我的Vue项目中的index.html文件,它似乎工作得很好。 CloudKit对象在我所有的组件中都可用。 ¯\ _(ツ)_ /¯