私は現在JavaでAndroid用のアプリケーションを持っていますが、これはiOSサポートのためにXamarin.Formsで書き直しています。 AndroidアプリではJsoupを使用し、XamarinアプリではAngleSharpを使用しています。AnglesharpとXamarin.Forms OpenAsyncはDroidプロジェクトでは動作しません
以下のコードは、iOSとUWPでは動作しますが、Droidプロジェクトでは動作しないという問題があります。
私の疑問は、context.OpenAsync(url)を呼び出すときに接続が確立されていないことです。
私はAndroidのマニフェストで
<uses-permission android:name="android.permission.INTERNET" />
を持っています。私は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);
}
のNb。プライバシーのために、私はURLまたはユーザー名とパスワードを表示していません。 ご協力いただければ幸いです!
例外/スタックトレース? – SushiHangover
なし。username.ValueがERRORを返す以外は、System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。要素が定義されていないため正しいです。 – genie137