内容丰富 Javascript SDK 和 NativeScript
Contentful Javascript SDK and NativeScript
我正在努力让 JavaScript Contentful SDK 在我的 Nativescript 应用程序中运行。可悲的是,我是 NativeScript 的新手,所以可能缺少一些基本的东西。希望有人能帮忙:)
该模块以常规方式安装在我的 NativeScript 项目中:
npm install contentful
然后我制作了一个简单的模块(基于我在 Github https://github.com/contentful-labs/product-catalogue-web.ts 找到的示例):
import {ContentfulClientApi, createClient} from 'contentful';
export class ContentfulService {
cdaClient: ContentfulClientApi;
constructor() {
this.cdaClient = createClient({
space: 'spaceId',
accessToken: 'token'
});
}
getContent() {
this.cdaClient.getContentTypes()
.then(function(response) {
console.log(response.items);
return response.items;
})
}
}
并且在 NativeSctipt 视图模型中:
import { ContentfulService } from "../shared/cms";
let cms = new ContentfulService();
cms.getContent();
...但是没有任何反应。没有错误或调试输出,但是本机脚本视图模型根本不执行任何操作——代码不执行。如果我从构造函数中删除 createClient()
代码,我只是在 getContent()
中放置了一个 console.log,那么当我从视图模型调用 getContent() 时,console.log 会按预期工作
如果我在 NativeScript 之外尝试这个,例如使用 Contentful 仪表板中的样板节点项目,按预期工作。
我想使用 SDK 的原因是我需要通过同步支持离线内容,而 SDK 似乎使这很容易(如果我能让它工作的话!)。
感谢您的帮助
我没有使用 NativeScript 的具体经验,但因为它只是在底层使用 TypeScript / JavaScript:
getContent
必须 return Contentful 客户回馈的承诺:
return this.cdaClient.getContentTypes()
.then(...)
这里可能发生的是,returned Promise 被拒绝,但由于它没有在其他地方使用并且没有分配 catch
块,它被默默地吞没了。
return this.cdaClient.getContentTypes()
.then(...)
.catch(function (error) {
console.error(error)
})
所以 Contentful SDK 似乎与 Native Script 不兼容,所以现在我打算换用 React Native。您可以将 fetch 与 Contentful REST API 一起使用,但我想要一些额外的 SDK 功能,例如离线缓存。
我正在努力让 JavaScript Contentful SDK 在我的 Nativescript 应用程序中运行。可悲的是,我是 NativeScript 的新手,所以可能缺少一些基本的东西。希望有人能帮忙:)
该模块以常规方式安装在我的 NativeScript 项目中:
npm install contentful
然后我制作了一个简单的模块(基于我在 Github https://github.com/contentful-labs/product-catalogue-web.ts 找到的示例):
import {ContentfulClientApi, createClient} from 'contentful';
export class ContentfulService {
cdaClient: ContentfulClientApi;
constructor() {
this.cdaClient = createClient({
space: 'spaceId',
accessToken: 'token'
});
}
getContent() {
this.cdaClient.getContentTypes()
.then(function(response) {
console.log(response.items);
return response.items;
})
}
}
并且在 NativeSctipt 视图模型中:
import { ContentfulService } from "../shared/cms";
let cms = new ContentfulService();
cms.getContent();
...但是没有任何反应。没有错误或调试输出,但是本机脚本视图模型根本不执行任何操作——代码不执行。如果我从构造函数中删除 createClient()
代码,我只是在 getContent()
中放置了一个 console.log,那么当我从视图模型调用 getContent() 时,console.log 会按预期工作
如果我在 NativeScript 之外尝试这个,例如使用 Contentful 仪表板中的样板节点项目,按预期工作。
我想使用 SDK 的原因是我需要通过同步支持离线内容,而 SDK 似乎使这很容易(如果我能让它工作的话!)。
感谢您的帮助
我没有使用 NativeScript 的具体经验,但因为它只是在底层使用 TypeScript / JavaScript:
getContent
必须 return Contentful 客户回馈的承诺:
return this.cdaClient.getContentTypes()
.then(...)
这里可能发生的是,returned Promise 被拒绝,但由于它没有在其他地方使用并且没有分配 catch
块,它被默默地吞没了。
return this.cdaClient.getContentTypes()
.then(...)
.catch(function (error) {
console.error(error)
})
所以 Contentful SDK 似乎与 Native Script 不兼容,所以现在我打算换用 React Native。您可以将 fetch 与 Contentful REST API 一起使用,但我想要一些额外的 SDK 功能,例如离线缓存。