我目前在PCL中使用xamarin格式來訪問攝像頭並掃描條形碼並將其顯示在UserDialog中。我可以使用依賴服務輕鬆完成。我遇到的問題正在迴歸。我想通過按下userDialog上的取消按鈕回到PCL。我正在使用messagingcenter返回PCL主頁,並且消息會返回,但UI保持不變,即相機屏幕停留在那裏。從xamarin android導航到PCL
下面是我的代碼
void HandleScanResult(ZXing.Result result)
{
if (result != null && !string.IsNullOrEmpty(result.Text))
{
CrossVibrate.Current.Vibration(500);
}
Xamarin.Forms.Device.BeginInvokeOnMainThread(async() =>
{
resultText.Text = await SaveScannedRecord(result.Text);
PromptResult promptResult = await UserDialogs.Instance.PromptAsync
("Hello Friends","Question","SCAN","CANCEL",resultText.Text,InputType.Name);
if (promptResult.Ok)
{
}
else
{
//CODE TO GO BACK
var home = new Home();
RunOnUiThread(() => { xamarinForm.MessagingCenter.Send<Home>(home, "scannedResult"); });
}
});
}
發送消息給anothe r頁面只會發送一條消息:當您收到解除掃描儀頁面的消息時,您需要執行一些操作。你如何做到這一點將取決於你如何展示它。你也有RunOnUIThread嵌套在BeginInvokeOnMainThread內,這是不必要的。最後,你應該可以直接從PCL調用ZXIng。請參閱github頁面,瞭解這樣做的Forms示例應用程序。 – Jason
你如何解僱掃描儀頁面。 – maxspan
這取決於 - 你沒有顯示實際顯示頁面的代碼。 – Jason