Did you know that you can navigate the posts by swiping left and right?

Screenshots der eigenen Windows Phone App verhindern

03 Oct 2014 . Development . Comments #mobile #windows phone #silverlight #winprt

Cannot capture protected ContentEs kann Situationen geben, in denen man gerne verhindern möchte, dass der Benutzer der eigenen App einen Screenshot (Lautstärke hoch + Ein-/Aus-Button kurz drücken) erstellen kann. Sei es während der Darstellung von internen Zahlen / Daten im Enterprise-Umfeld, oder auch bei einer App wie Snapchat.

[appbox windowsphone 82fa6341-28dc-4203-bd08-9749b167bc4b]

Es gibt ein API mit dem genau das verhindert werden kann, sowohl für die Silverlight 8.0 Apps (ab GDR 1) als auch für die WinPRT-Apps. Wenn der Benutzer dann versucht einen Screenshot anzufertigen erhält er die Meldung angezeigt, dass das bei geschützten Inhalten nicht funktioniert. Jedoch ist in der Silverlight-API die entsprechende Eigenschaft versteckt und deshalb nur über Umwege erreichbar.

Windows Phone 8.1 WinPRT-App:

Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().IsScreenCaptureEnabled = false;

Windows Phone 8.1 Silverlight-App:

public static void SetScreenCaptureEnabled(this Microsoft.Phone.Controls.PhoneApplicationPage page, bool enabled)
{
    var propertyInfo =
        typeof (Microsoft.Phone.Controls.PhoneApplicationPage).GetProperty("IsScreenCaptureEnabled");
 
    if (propertyInfo != null)
    {
        propertyInfo.SetValue(page, enabled);
    }
}

Eine schöne Lösung als Attached-Property gibt es auch auf GitHub in den XamlEssentials.

Das jemand sich Daten abschreibt oder auch mit einer Kamera vom Display abfotografiert, kann man so natürlich trotzdem nicht verhindern.

Questions/Suggestions
As always, for questions or feedback, contact me or leave a comment.

Octocat by GitHubEdit this page on GitHub