Xamarin -我不能在iPhone中加载图像,但可以在Android和iPhone模拟器中加载

dzhpxtsq  于 2023-06-03  发布在  Android
关注(0)|答案(1)|浏览(236)

我在iPhone上的图像有问题。它们在Android(模拟器和实际设备)和iPhone模拟器上运行良好。但是,在实际的iPhone设备上,我无法显示图像,除非它们在资产目录中。我开始了一个新的项目,它确实显示。然后,我添加了文件(没有使用的文件--因为我的App.xaml.cs中唯一的东西就是显示图像的页面的加载)。在某些时候,图像退出显示,所以它似乎是某种构建错误,但我无法弄清楚。Android模拟器:

iPhone模拟器:

实际iPhone:

因此,对于iPhone,ffImageLoading可以从我的本地设备加载.svg,但不能加载.png文件或远程URL。Xamarin.图像无法加载任何内容。
有什么想法吗?是不是建筑有问题?我的生成设置为:

如果我启用Mono解释器,或者我省略了mtouch选项(所有工作都是Mono解释器禁用和mtouch选项设置),我会得到可怕的“Could not AOT the assembly...”错误。
我尝试了不同的架构。我尝试了不同的链接行为。不知道还能尝试什么。
任何帮助或想法的工作区将不胜感激!
谢谢!
格雷格
附件是来源,但它不是很多看。

Testpage2.xaml
    <ContentPage.Resources>
        <Style x:Key="MyImage" TargetType="Image">
            <Setter Property="WidthRequest" Value="25" />
        </Style>
    </ContentPage.Resources>

    <ContentPage.Content>
        <ScrollView>
            <StackLayout BackgroundColor="Wheat">
                <Label Text="ffImageLoading local resource" TextColor="Red" />
                <ffimageloadingsvg:SvgCachedImage Source="resource://ONEflight.BAJit.App.Images.Buttons.MyProfileButton.svg" Style="{StaticResource MyImage}" />

                <Label Text="URL Image using ffImageLoading" TextColor="Red" />
                <ffimageloading:CachedImage Source="https://ofpublicwebdata.blob.core.windows.net/of-public-data-aircraft-images/9ef83699-d8e8-44d9-ac94-2a26359aac9d.jpg" Style="{StaticResource MyImage}" />

                <Label Text="URL Source in xaml using Xamarin.Image" TextColor="Red" />
                <Image Source="https://ofpublicwebdata.blob.core.windows.net/of-public-data-aircraft-images/9ef83699-d8e8-44d9-ac94-2a26359aac9d.jpg" Style="{StaticResource MyImage}" />

                <Label Text="URL Source as string in Code using Xamarin.Image" TextColor="Red" />
                <Image Source="{Binding UrlStr}" Style="{StaticResource MyImage}" />

                <Label Text="URL downloaded using MemStream in Code using Xamarin.Image" TextColor="Red" />
                <Image Source="{Binding ImageDownloadedToMemStream}" Style="{StaticResource MyImage}" />

                <Label Text="Local png using Xamarin.Image" TextColor="Red" />
                <Image Source="{ex:ImageResource Images.Amenities.pets.png}" Style="{StaticResource MyImage}" />
            </StackLayout>
        </ScrollView>
    </ContentPage.Content>
TestViewModel2.cs
        public string UrlStr { get; set; }
        public ImageSource ImageDownloadedToMemStream { get; set; }
        public ImageSource Pets => Resources.PetsIcon;
        public ImageSource URITest { get; set; }

        public TestViewModel2()
        {
            string url = "https://ofpublicwebdata.blob.core.windows.net/of-public-data-aircraft-images/9ef83699-d8e8-44d9-ac94-2a26359aac9d.jpg";

            try
            {
                UrlStr = url;

                MemoryStream ms = new MemoryStream(new WebClient().DownloadData(url));
                ImageDownloadedToMemStream = ImageSource.FromStream(() => ms);

                URITest = ImageSource.FromUri(new Uri(url));
            }
            catch (Exception ex)
            {
                LogWriter.Log("Image Error: " + ex.Message);
            }
        }
App.xaml.cs
MainPage = new NavigationPage(new TestPage2(new TestViewModel2()));
k5hmc34c

k5hmc34c1#

在AppDelegate.cs中尝试以下解决方案:

// intermediate certificate issued by provider has expired. Second line is needed!
FFImageLoading.Forms.Platform.CachedImageRenderer.Init();
ImageService.Instance.Initialize(new FFImageLoading.Config.Configuration { HttpClient = new HttpClient() });

当我试图加载镜像时,我在cloudfare中遇到了身份验证问题,这对我很有效。:)

相关问题