我已經創建了一個小樣本Lens應用程序,並且我希望能夠在默認相機應用程序中單擊鏡頭圖標時直接導航到CameraCaptureTask。在我的應用程序中,我已經在正常應用程序操作期間在按鈕點擊事件中調用了CameraCaptureTask。我怎樣才能設置這個以及從LensPicker選項中工作?如何從LensPicker導航到CameraCaptureTask
我一直在引用 http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj662936(v=vs.105).aspx
LensExampleUriMapper.cs
private string tempUri;
public override Uri MapUri(Uri uri)
{
tempUri = uri.ToString();
// Look for a URI from the lens picker.
if (tempUri.Contains("ViewfinderLaunch"))
{
// Launch as a lens, launch viewfinder screen.
return new Uri("/MainPage.xaml", UriKind.Relative);
}
// Otherwise perform normal launch.
return uri;
}
我想在我的MainPage OnNavigatedTo
事件return new Uri("/MainPage.xaml", UriKind.Relative);
使傳遞查詢字符串值,我可以檢查查詢字符串值,然後調用CameraCaptureTask,然後將結果路由到已創建的事件處理程序(它在MainPage中顯示結果圖像)。出於某種原因,我在嘗試創建QueryString傳遞時遇到調試錯誤,而我不確定爲什麼?
編輯**不再收到錯誤,但調用CameraCaptureTask時發生無限循環。爲什麼?
LensExampleUriMapper.cs
private string tempUri;
public override Uri MapUri(Uri uri)
{
tempUri = uri.ToString();
// Look for a URI from the lens picker.
if (tempUri.Contains("ViewfinderLaunch"))
{
// Launch as a lens, launch viewfinder screen.
return new Uri("/MainPage.xaml?fromLensPicker=" + "fromLensPicker", UriKind.Relative);
}
// Otherwise perform normal launch.
return uri;
}
MainPage.xaml.cs中
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string fromLensPicker = null;
if (NavigationContext.QueryString.TryGetValue("fromLensPicker", out fromLensPicker))
{
if (fromLensPicker == "fromLensPicker")
{
newButton_Click(null, null); //click event that calls CameraCaptureTask
fromLensPicker = null; //Temporarily nullifies value until MainPage is OnNavigatedTo after CameraCaptureTask completes
}
}
}
我相信,當CameraCaptureTask
被調用時,應用程序邏輯刪除,然後重新上的MainPage,其中QueryString
值fromLensPicker == "fromLensPicker"
整個週期重複開始。我該如何解決這個問題?
您是否可以在發生QueryString錯誤的位置包含代碼? – codechinchilla
實際上,我沒有正確檢查'tempUri'的值,它包含的字符串比我在檢查是否只導航到MainPage或插入查詢字符串之前檢查的字符串更多。 – Matthew
其實我注意到我得到一個調用CameraCaptureTask的按鈕單擊事件的無限循環,因此永遠無法離開任務。我編輯了我原來的帖子來反映這一點。它必須處理我相信的墓碑。一旦頁面被導航到並檢索它們,我如何才能清除查詢字符串值,以便在從CameraCaptureTask返回同一頁面時不再存在? – Matthew