0

私は実際にこれを無駄に実装する方法についてグーグルで調べてきました。Caliburn Micro を使用して実際にそれを行う方法に関するリソースは 1 つも見つかりませんでした。

基本的に、私はこれを試しています http://www.developer.nokia.com/Community/Wiki/OAuth_on_Windows_Phone

例では、redirect_uri通常のリンクとして使用しています。Protocol/File Association でそれを行いました ( http://www.developer.nokia.com/Community/Wiki/URI_associations_for_Windows_Phone_8を参照)。すべて正常に動作します。Caliburn Microなしで動作するようになりました。

しかし、その例に基づいて、実装UriMapperBaseしてに割り当てる必要がありRootFrame.UriMapperます。

私の質問はUriMapper、WP8 用の CaliburnMicro を実際にどのように実装するかです。Win 8 の場合は、 をオーバーライドしてOnActivateをチェックでき、ActivationKind.Protocolは必要ないため、異なりますUriMapper

4

1 に答える 1

3

Ok。最後にそれを機能させることができました。だから、ここに投稿します。これに対する答えに感謝する私のような失われた魂が再びあると確信しているためです.

Caliburn で使用するには、 のUriMapperをオーバーライドする必要があります。CreatePhoneApplicationFramebootsrapper

Boostrapper.cs

protected override PhoneApplicationFrame CreatePhoneApplicationFrame()
{
    // var frame = base.CreatePhoneApplicationFrame(); this doesnt work
    var frame = new PhoneApplicationFrame(); // this works
    frame.UriMapper = new AssociationUriMapper();

    return frame;
}

AssociationUriMapper.cs- 上記のリンクの例に従っただけです

public class AssociationUriMapper : UriMapperBase
{
    private string tempUri;


    public override Uri MapUri(Uri uri)
    {
        tempUri = System.Net.HttpUtility.UrlDecode(uri.ToString());

        // URI association launch for contoso.
        if (tempUri.Contains("pocketthis:MainPage"))
        {
            // Get the category ID (after "CategoryID=").
            //int categoryIdIndex = tempUri.IndexOf("CategoryID=") + 11;
            //string categoryId = tempUri.Substring(categoryIdIndex);

            // Views/MainPage.xaml returns external exception, 
            // so remember the / before views
            return new Uri("/Views/MainPage.xaml", UriKind.Relative);
        }

        // Otherwise perform normal launch.
        return uri;
    }
}

これが、Caliburn Micro を使用して WP8 で Uri/File Association を実装しようとしている人に役立つことを願っています。

于 2013-04-17T12:56:16.000 に答える