0

我正在尝试将 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”

所以然后我读了这个 SO 帖子并尝试了这个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,而不像在mounted()上面的函数中那样重新定义它。

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

4

2 回答 2

0

你也可以在 vue 中添加一个新的全局属性:

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

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

更多信息在这里

mountedPS:您可以在应用程序中配置cloudkit

于 2018-08-16T05:57:30.983 回答
0

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

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

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

于 2018-08-16T14:44:34.997 回答