Xamarin.ios HybridWebView未触发LoadFinished事件
我正在开发我的第一个Xamarin.IOS应用程序,我想检索webview中加载的HTML页面。为了实现这一点,我参考了Google和Xamarin论坛并实现了以下步骤,但仍然没有触发LoadFinished事件。谁能帮我解决这个问题Xamarin.ios HybridWebView未触发LoadFinished事件,xamarin.ios,xamarin.forms,Xamarin.ios,Xamarin.forms,我正在开发我的第一个Xamarin.IOS应用程序,我想检索webview中加载的HTML页面。为了实现这一点,我参考了Google和Xamarin论坛并实现了以下步骤,但仍然没有触发LoadFinished事件。谁能帮我解决这个问题 使AppDelegate从XFormsApplication Legate扩展 在FinishedLaunching事件中,我有以下一组代码 你能帮我一下吗?如果你把webview.LoadFinished+=webview\u LoadFinished行移到这行
你能帮我一下吗?如果你把webview.LoadFinished+=webview\u LoadFinished行移到这行下面:webview=newhybridwebview();LoadFinished my将在事件连接之前被调用。嗨,Adam,我根据你的建议移动了事件初始化代码,但事件仍然没有被触发。我正在使用Visual Studio进行Mac预览(预览3)。Mono 4.8.0,Xamarin.IOS 10.4.0.73,如果这有助于缩小我的问题范围。页面是否正确加载到您的Web视图中?它在任何时候都会被呼叫吗?我注意到您删除了RegisterCallback中的事件处理程序。我的目的是在页面加载后(在后台)获取页面的HTML,因此我实际上没有向用户显示webview。如果有什么不同,您是否建议使用用户界面检查webview?
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
{
// Override point for customization after application launch.
// If not required for your application you can safely delete this method
SetIoc();
Xamarin.Forms.Forms.Init();
XLabs.Forms.XFormsAppiOS.Init();
var webHybrid = new XLabs.Forms.Controls.HybridWebViewRenderer();
return true;
}
private void SetIoc()
{
var resolverContainer = new SimpleContainer();
resolverContainer.Register<IDevice>(t => AppleDevice.CurrentDevice)
.Register<IJsonSerializer, SystemJsonSerializer>()
.Register<IDependencyContainer>(t => resolverContainer);
Resolver.SetResolver(resolverContainer.GetResolver());
}
public partial class MainViewController : UIViewController
{
HybridWebView webview;
protected MainViewController(IntPtr handle) : base(handle)
{
// Note: this .ctor should not contain any initialization logic.
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
var webHybrid = new HybridWebViewRenderer();
webview = new HybridWebView();
}
void Webview_LoadFinished(object sender, EventArgs e)
{
this.webview.RegisterCallback("dataCallback", s =>
{
System.Diagnostics.Debug.WriteLine(s);
this.webview.LoadFinished -= Webview_LoadFinished;
this.webview.RemoveCallback("dataCallback");
});
this.webview.InjectJavaScript("Native(\"dataCallback\", document.getElementsByTagName('html')[0].innerHTML);");
}
private void GalleryButtonTouchUpAsync(object sender, EventArgs e)
{
webview.Uri = new Uri("http://google.co.in");
webview.LoadFinished += Webview_LoadFinished;
}
}