【发布时间】:2018-06-14 09:06:31
【问题描述】:
我根据https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/custom-renderer/hybridwebview/创建了一个HybridWebView,并创建了一个原生ios WKWebView。现在我想在表单中添加自定义控件以返回/转发/主页,但我不确定从我的 Xamarin 表单视图调用到我的本机视图的推荐方法是什么,例如触发 ios 的 GoBack() WKWebView 浏览器?
我应该尝试调用我的原生实现还是应该让原生视图监听来自表单视图的事件?
【问题讨论】:
-
您可能需要使用Xamarin MessagingCenter 功能。它遵循发布-订阅模式。您可以做的是在您的 Xamarin PCL 中发布一条消息,并且您必须从您的本机项目订阅这些来自 Xamarin PCL 触发器/事件的已发布消息。
-
终于开始测试这个并且效果很好,将您的评论作为答案发布@ADimaano,我会将其标记为选定答案。
-
@Mårten 你到底把你的订阅放在哪里,你是如何获得 WKWebView 的实例来执行 GoBack 方法的?谢谢!
-
@MarkErickson 在我的 ios 项目中的 HybirdWebViewRenderer 构造函数中我已经订阅了
public HybridWebViewRenderer() { MessagingCenter.Subscribe<HybridWebView>(this, MessageTypes.BrowserBackButtonClick.ToString(), GoBack); }我的方法看起来像这样:private void GoBack(HybridWebView sender) { if (Control.CanGoBack) Control.GoBack(); }...抱歉这里的代码格式,似乎看不到让这些 sn-ps 看起来不错。 -
完美,我忘记了 ViewRenderer 中的控件,这就是我无法弄清楚如何获取实例的地方。谢谢!!
标签: xamarin xamarin.forms