我想从一个角度将项目中的数据从网站获取到移动应用程序中。
我发现HttpClient插件可以很好地在浏览器和Android设备中使用,但不适用于iOS设备。
代码如下:
data.service.ts文件:
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class DataService {
constructor(private httpClient: HttpClient) {
//
}
getDescription() {
return this.httpClient.get('https://mywebsite.com');
}
}
page.ts我获取数据的地方:
import { Component, OnInit } from '@angular/core';
import { DataService } from '../service/data.service';
@Component({
selector: 'app-batik-motifs',
templateUrl: './batik-motifs.page.html',
styleUrls: ['./batik-motifs.page.scss'],
})
export class BatikMotifsPage implements OnInit {
description$: Object;
constructor(private dataService: DataService) {
//
}
ngOnInit() {
this.dataService.getDescription().subscribe(descriptions => this.description$ = descriptions);
}
}
page.html,我在其中显示数据:
<ion-list>
<ion-item *ngFor="let descriptions of description$" lines="none">
<ion-card>
<ion-card-header>
<ion-card-subtitle [innerHTML]="descriptions.title.rendered"></ion-card-subtitle>
</ion-card-header>
<ion-card-content>
<ion-row>
<ion-col size="4">
<img [src]="descriptions.image.guid" />
</ion-col>
<ion-col size="8">
<p [innerHTML]="descriptions.content.rendered"></p>
</ion-col>
</ion-row>
</ion-card-content>
<ion-row class="cardfooter">
<ion-col>
<ion-button>Read More</ion-button>
</ion-col>
</ion-row>
</ion-card>
</ion-item>
</ion-list>
我已经尝试在config.xml上添加一些属性,
<access origin="*" />
<allow-navigation href="*" />
<allow-navigation href="http://localhost:8080/*" />
<allow-navigation href="https://mywebsite.com/*" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
然后在index.html
中<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
问题是,在浏览器和Android设备中我可以看到数据,但是在iOS设备中我什么都看不到(即使HTTP请求正常,因为我没有错误)。
答案 0 :(得分:0)
确保您的API部署在角度应用程序的同一域中,甚至不部署在子域中。
我面临同样的问题,经过大量搜索,这是为我工作的唯一方法
我认为这与这个问题有关。