Kodunuzu sadece bir PCL'de kullandım, değiştirdiğim tek şey iOS ATS gereksinimlerini karşılamak için url (https
) ve bunu bir async yönteminden çağırdı. IOS cihazında iyi çalışır. PCL'de Microsoft.Net.Http
ve PCL 'da ModernHttpClient
ve platforma özel projelerde (NuGet aracılığıyla) referanslar aldım. Bazı PCL görmek model sınıfında
Kodunuz:
using System.Net.Http;
using System.Threading.Tasks;
using ModernHttpClient;
public class ItemsViewModel
{
...
public async Task<string> GetPlaylist()
{
// Use https to satisfy iOS ATS requirements.
var client = new HttpClient(new NativeMessageHandler());
var response = await client.GetAsync("https://api.soundcloud.com/playlists?client_id=17ecae4040e171a5cf25dd0f1ee47f7e&limit=1");
var responseString = await response.Content.ReadAsStringAsync();
return responseString;
}
...
}
Sonra başlatır ve görünümü modelinin bir örneğini kullanan bir PCL sayfa sınıfında: Bu yardımcı olur
public partial class ItemsPage : ContentPage
{
public ItemsPage()
{
InitializeComponent();
Vm = new ItemsViewModel();
BindingContext = Vm;
}
protected override async void OnAppearing()
{
var playlist = await Vm.GetPlaylist();
// Do something cool with the string, maybe some data binding.
}
// Public for data binding.
public ItemsViewModel Vm { get; private set; }
}
Umut.
'yeni NativeMessageHandler()' kodunuzu BTW yerine Result' kullanmak 'bloke ... benim için çalıştı' bekliyor response.Content.ReadAsStringAsync() ' – Eser
PCL projede bu kodu çalıştırmayı denediniz ? – xevilboss
@Eser OP'nin ModernHttpClient'i kullandığını düşünüyorum, bu yüzden PCL ve yerel projelerde referanslara gereksiniminiz var. –