xamarin.ios 相关问题

Xamarin.iOS(以前称为MonoTouch)是适用于Mac OS X和Windows的商业软件开发工具包,可让您使用C#(一种.NET编程语言)为Apple iPhone,iPod Touch,iPad(iOS),Apple创建本机应用程序观看(watchOS)和AppleTV(tvOS)设备。

使用 AttributedText HTML 设置 UILabel 的字体系列

首先,我只想在标签中显示 Html 内容。 Html 简单,例如:一些粗体文本 我是通过以下代码完成的: var 属性 = 新

回答 1 投票 0

iOS IPA 不是有效的二进制文件

我正在使用 Xamarin Forms 开发 iPhone 应用程序,从开发和调试到为应用程序商店部署创建存档,一切都工作正常。 当我将 .ipa 上传到应用程序时...

回答 1 投票 0

限制用户在 Xamarin iOS 中截图

我想限制用户在我的 Xamarin Native iOS 应用程序中截取屏幕截图。 我看过很多链接和代码,但不知何故它对我不起作用。 我按照链接 Restrict

回答 1 投票 0

将项目的 Xamarin 表单 IOS 部分设置为启动选项项目后,我收到“UnpackFrameworks”任务意外失败错误

对于上下文,我在 Visual Studio 中打开了我们项目的其他开发者 GitHub 分支。当我将项目启动选项设置为 iOS 并尝试运行它时,我收到了如下所示的错误。我是...

回答 1 投票 0

格式化日期时出现ObjectDisposeException NSDate

我有以下方法将 UnixTimestamp 格式化为格式化的日期和时间: 公共字符串 ConvertDateTimeToDeviceShortDateFormat(double unixTimestamp) { 使用 (var dateInNsDate = NSDate.

回答 1 投票 0

如何检查用户是否已授予应用程序POST_NOTIFICATIONS权限?

我需要在我的应用程序中知道,该用户在自己的手机>设置>应用程序通知>为此应用程序设置通知。

回答 1 投票 0

如何检测webview滚动到底部?

我想知道用户何时结束在显示条款和条件的 Web 视图上的滚动,以便仅当用户阅读此内容时才显示“接受”按钮。 我想知道用户何时结束在显示条款和条件的 Web 视图上的滚动,以便仅当用户阅读此内容时才显示“接受”按钮。 <StackLayout Spacing="0" BackgroundColor="{StaticResource WhiteColor}"> <CustomView:HeaderView VerticalOptions="Start" LeftImageSource="{Binding LeftImage}" RightImageSource="{Binding RightImage}" LeftCommand="{Binding LeftClickCommand}" RightCommand="{Binding RightClickCommand}" HeaderText="{Binding ScreenTitle}" PrevText="{Localize:ETranslate PrevText}" /> <WebView Source="{Binding Html, Converter={StaticResource HtmlSourceConverter}}" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" /> </StackLayout> public class HtmlSourceConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { var html = new HtmlWebViewSource(); if (value != null) { html.Html = value.ToString(); } return html; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } 我尝试使用 Renderer 来实现此目的,但在 iOS WkWebViewRenderer 中没有 WebViewRenderer 中可用的 Scrolled() 方法。 有什么方法可以在 Xamarin.Forms 中实现这一点吗? WKWebView 内部有一个属性 ScrollView,所以我们可以用它覆盖 Delegate。 WKWebViewRenderer 中的代码 [assembly: ExportRenderer(typeof(WebView), typeof(MyRenderer))] namespace FormsA.iOS { public class MyDelegate : UIScrollViewDelegate { public override void Scrolled(UIScrollView scrollView) { if(scrollView.ContentOffset.Y >= scrollView.ContentSize.Height - scrollView.Frame.Size.Height) { //here rearch bottom } else if(scrollView.ContentOffset.Y < scrollView.ContentSize.Height) { } } } public class MyRenderer: WkWebViewRenderer { protected override void OnElementChanged(VisualElementChangedEventArgs e) { base.OnElementChanged(e); this.ScrollView.Delegate = new MyDelegate(); } } } 它在我这边工作得很好,请参阅https://stackoverflow.com/a/52872317/8187800. 我也有 Android 的解决方案。这是完整的解决方案,希望这对寻找相同解决方案的人有帮助! MyPage.xaml <webview:ScrollWebView x:Name="webView" Source="{Binding Html, Converter={StaticResource HtmlSourceConverter}}" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" IsBottomReached="{Binding IsShowAgreeButton}"/> ScrollWebView 控件 public class ScrollWebView : WebView { public static BindableProperty IsBottomReachedProperty = BindableProperty.Create(nameof(IsBottomReached), typeof(bool), typeof(ScrollWebView), default(bool), BindingMode.TwoWay, propertyChanged: null); public bool IsBottomReached { get { return (bool)GetValue(IsBottomReachedProperty); } set { SetValue(IsBottomReachedProperty, value); } } } Android:ScrollWebViewRenderer [assembly: Xamarin.Forms.ExportRenderer(typeof(ScrollWebView), typeof(ScrollWebViewRenderer))] namespace MyApp.Droid { public class ScrollWebViewRenderer : WebViewRenderer { public static ScrollWebView view = null; public ScrollWebViewRenderer(Context context) : base(context) { } protected override void OnElementChanged(ElementChangedEventArgs<WebView> e) { base.OnElementChanged(e); view = (ScrollWebView)Element; if (Control != null) { Control.ScrollChange += Control_ScrollChange; } } private void Control_ScrollChange(object sender, ScrollChangeEventArgs e) { var nativeWebView = e.V as global::Android.Webkit.WebView; int height = (int)Math.Floor(nativeWebView.ContentHeight * nativeWebView.Scale); int webViewheight = nativeWebView.Height; int cutOff = height - webViewheight; if (e.ScrollY >= cutOff) { view.IsBottomReached = true; System.Diagnostics.Debug.WriteLine("Bottom Reached"); } else { view.IsBottomReached = false; } } } } iOS:ScrollWebViewRenderer [assembly: ExportRenderer(typeof(ScrollWebView), typeof(ScrollWebViewRenderer))] namespace MyApp.iOS.RendererClasses { public class ScrollWebViewRenderer : WkWebViewRenderer { public static ScrollWebView view = null; public ScrollWebViewRenderer() { } protected override void OnElementChanged(VisualElementChangedEventArgs e) { base.OnElementChanged(e); view = (ScrollWebView)Element; MyDelegate myDel = new MyDelegate(); myDel.ProcessCompleted += MyDel_ProcessCompleted; this.ScrollView.Delegate = myDel; } private void MyDel_ProcessCompleted(object sender, bool isScrolledToBottom) { view.IsBottomReached = isScrolledToBottom; } } public class MyDelegate : UIScrollViewDelegate { public event EventHandler<bool> ProcessCompleted; public override void Scrolled(UIScrollView scrollView) { if (scrollView.ContentOffset.Y >= scrollView.ContentSize.Height - scrollView.Frame.Size.Height) { System.Diagnostics.Debug.WriteLine("Bottom Reached"); ProcessCompleted?.Invoke(this, true); } else { ProcessCompleted?.Invoke(this, false); } } } } 实现这个答案后,https://stackoverflow.com/a/66931493/15125666我仍然遇到Android渲染器的问题,因为它没有检测到用户何时到达WebView的底部。 为了解决这个问题,您需要在计算中添加一个缓冲区,这将在将内容高度乘以比例时考虑任何潜在的浮点错误。 这里是 Android 的更新代码:ScrollWebViewRenderer private void Control_ScrollChange(object sender, ScrollChangeEventArgs e) { var nativeWebView = e.V as global::Android.Webkit.WebView; int height = (int)(nativeWebView.ContentHeight * nativeWebView.Scale); int webViewheight = nativeWebView.Height; int bottomThreshold = (int)Math.Floor(0.004 * webViewheight); // the number that I used 0.004 was what worked for me. you might need to adjust it for your use case. int cutOff = height - webViewheight - bottomThreshold; if (e.ScrollY >= cutOff) { view.IsBottomReached = true; System.Diagnostics.Debug.WriteLine("Bottom Reached"); } else { view.IsBottomReached = false; } } 这里我添加了一个动态 bottomThreshold 缓冲区,并将其用于 cutOff 计算。它在计算中添加了一个小缓冲区,以确保即使很小的差异也不会妨碍到达底部的检测。

回答 3 投票 0

“iOS Xamarin.Forms:更新到 iOS 17.1.1/17.1.2 后滚动 TimePicker 时出现 NSInternalInconsistencyException”

我们的 Xamarin.Forms iOS 应用程序遇到崩溃,并出现特定异常:致命异常:NSInternalInconsistencyException 不得从

回答 1 投票 0

Xamarin iOS 图标设置

“我正在尝试在 Windows 设备上为我使用 Xamarin Forms 开发的 iOS 应用程序设置图标,但我似乎无法做到这一点。我已尝试了所有建议的方法,但它不起作用。我可以吗? ...

回答 1 投票 0

Xamarin 项目中的权限访问重复对话框 - 仅在 ios 中

我有一个 Xamarin Prism Forms 应用程序,其中包含应该获取用户当前位置的网页。 该应用程序已拥有 Android 所需的“应用程序”权限。但在ios中,当我打电话时...

回答 2 投票 0

Xamarin Forms 适用于 Facebook Audience Network 的 iOS 渲染器

我使用 Xamarin Forms 开发了一个跨平台应用程序,运行良好。现在,我想在应用程序中显示广告,所以我阅读了一些文章并浏览了一些 YouTube 视频 https://www.y...

回答 2 投票 0

UniformTypeIdentifiers UTType 始终返回 null

我正在尝试从下载的文件路径获取 Mime 类型。 var fileNanager = new NSFileManager(); if (!fileNanager.FileExists(路径)) { 返回空值; ...

回答 1 投票 0

Xamarin iOS 错误:无法解析引用

如果我在 VS 2013 中设置 Xamarin.Forms 解决方案并尝试运行 iOS 版本,则会因以下错误而失败: 错误 2 无法解析引用:/Users/Koray/Library/Caches/Xamarin...

回答 3 投票 0

使用 maui 在应用程序委托中注册依赖服务后应用程序崩溃了

在将 Xamarin.Forms 迁移到面向 .NET 7 的 .NET Maui 时,我已使用 appdelegate.cs 中的 FinishedLaunching 方法注册了依赖项服务,但是在执行 HttpClient.GetAsync() 时,应用程序

回答 1 投票 0

iOS 设备上的 TimePicker 标签中的印地语上午/下午

时间选择器标签以印地语而不是英语显示所选时间 AM/PM。 但它在选择器部分以英文显示 正如在这里可以看到的。 设备语言 英语和 设备...

回答 1 投票 0

Xamarin Forms:无法在设备上启动 ios 应用程序

我无法在设备上启动 xamarin.form IOS 应用程序。应用程序可以成功部署,但启动失败。 错误 MT1007:无法在设备上启动应用程序...

回答 1 投票 0

iOS 应用程序无法填满 iPhone 屏幕

我正在使用 Xamarin 编写 iPhone 应用程序。我的 UIViewController 没有填满整个屏幕,上下有间隙。这是模拟器的屏幕截图。我已经换颜色了

回答 2 投票 0

Visual Studio 应用程序中心:在 Xamarin iOS 上无法运行的崩溃和错误

在我的 Xamarin iOS 应用程序中,我启用了 AppCenter 的分析和崩溃,具体解释如下:https://learn.microsoft.com/en-us/appcenter/sdk/getting-started/xamarin 分析有效,但我看不到...

回答 2 投票 0

无论 .NET MAUI 中绑定的 ObservableRangeCollection 如何更改,列表视图都不会更新

正如标题所说。如果我尝试刷新 RestroomDetailPage.xaml 中绑定到 ObservableRangeCollection 审核的列表视图,它只会卡在活动指示器上,什么也得不到

回答 1 投票 0

VSCode 上的 Xamarin.Forms

有没有办法在 VS CODE 而不是 Visual studio 2022 中开发和运行 Xamarin.forms 应用程序? 有人尝试过并成功吗

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.