我有一个在Xamarin.Forms中创建的WebView对象:
WebView webView = new WebView {
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand
};
我需要对这个对象做一些特定于平台的操作:调用Xamarin.Forms中不可用的一些函数,因为它们在不同平台上的性质不同。
问题是,当我传递Xamarin.Forms对象时:
public interface IWebViewCallCSharp
{
void passWebView(WebView webView);
}
我可以在"本地方面"与我在Xamarin.Forms中完全相同的事情。如何在每个平台上获得WebView的一些特定于平台的功能?如何将this转换为this?
答案 0 :(得分:1)
您需要实现一个所谓的自定义渲染器。从这里开始:Implementing a HybridWebView。
简而言之,您需要:
在最后一步中你需要
开始使用本机控件的起点是OnElementChanged
覆盖。
protected override void OnElementChanged (ElementChangedEventArgs<NativeListView> e)
{
base.OnElementChanged (e);
if (Control == null) {
// Instantiate the native control and assign it to the Control property
}
if (e.OldElement != null) {
// Unsubscribe from event handlers and cleanup any resources
}
if (e.NewElement != null) {
// Configure the control and subscribe to event handlers
}
}