繁体   English   中英

Anglesharp和Xamarin.Forms OpenAsync无法在.Droid项目中使用

[英]Anglesharp and Xamarin.Forms OpenAsync does not work in.Droid project

我目前有一个适用于Java的Android应用程序,我正在Xamarin.Forms中重写该应用程序以获取iOS支持。 在Android应用程序中,我使用了Jsoup,在Xamarin应用程序中,我使用了AngleSharp。

我遇到的问题是,以下代码可在iOS和UWP上运行,但不能在Droid项目中使用。

我的怀疑是调用context.OpenAsync(url);时没有建立连接。

我有

<uses-permission android:name="android.permission.INTERNET" />

在我的Android清单中。 我的目标是minSdk = 17,targetSdk = 24。 问题一直存在于模拟器和我的Galaxy S7中。

码:

try
        {
                var url = "<URL>";
                var configuration = Configuration.Default.WithDefaultLoader().WithCookies();
                var context = BrowsingContext.New(configuration);
                var document = await context.OpenAsync(url);
                IHtmlInputElement username = document.QuerySelector("input[id='username']") as IHtmlInputElement;
                IHtmlInputElement password = document.QuerySelector("input[id='password']") as IHtmlInputElement;
                IHtmlFormElement loginform = document.QuerySelector("form[id='logonForm']") as IHtmlFormElement;

                username.Value = "<uname>";
                password.Value = "<pword>";
                document = await loginform.SubmitAsync();

                Debug.WriteLine(context.Active.Url);
            }
            catch (Exception e)
            {
                Debug.WriteLine("ERROR " + e);
            }

铌。 由于隐私原因,我没有显示网址或用户名和密码。 任何帮助表示赞赏!

这不是AngleSharp的问题,而是下面的Mono堆栈的问题。 确保您已授予该应用必要的权限。 另外,请确保接受了潜在的证书(如果通过HTTPS访问该页面)。 Android将拒绝不符合权限模型的请求(例如,应用程序没有权限,未安装自签名证书,...)。

希望这可以帮助! (不幸的是,从未找到/传达过该问题的确切问题-请参阅相应的GitHub问题 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM