2016-05-04 69 views
0

web viewという単純なUWPページを開発しています。ブラウザでhttpsプロトコルのURLがクリックされたとき、どうすれば自分のアプリケーションを開くことができますか?ブラウザでURLをクリックしたときにUWPアプリケーションを開く

Package.appmanifest

<uap:Extension Category="windows.protocol"> 
     <uap:Protocol Name="https"> 
     <uap:Logo>Assets\Logo.png</uap:Logo> 
     <uap:DisplayName>test</uap:DisplayName> 
     </uap:Protocol> 
</uap:Extension> 

App.xaml.cs

protected override void OnActivated(IActivatedEventArgs args) 
    { 
     if (args.Kind == ActivationKind.Protocol) 
     { 
      // Retrieves the activation Uri. 
      var protocolArgs = (ProtocolActivatedEventArgs)args; 
      var uri = protocolArgs.Uri; 

      var frame = Window.Current.Content as Frame; 

      if (frame == null) 
       frame = new Frame(); 

      // Navigates to MainPage, passing the Uri to it. 
      frame.Navigate(typeof(MainPage), uri); 
      Window.Current.Content = frame; 

      // Ensure the current window is active 
      Window.Current.Activate(); 
     } 
    } 

しかし、私は選択肢を持っていけないブラウザでリンクをクリックしてください:私はすでにこれを試してみました私のアプリでそれを開いた。 誰かにアイデアはありますか?

+0

あなたのURLはどのように見えますか? – Archana

+0

プロトコル名はhttps – Archana

+0

ではありません。プロトコルが添付されていますか?プロトコル:// pagename – Archana

答えて

1

でそれを行うことができ、この記事に従ってください。

+2

これはどこに文書化されていますか?これが本当だと確信していますか?このMSDNの記事はあなたの答えと矛盾していませんか? https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/launch-default-app –

0

httpプロトコル(thisによる)にアプリをバインドすることは正しいと思います。

ブラウザでリンクをクリックすると、アプリで開くことはできません。

私は、あなたがブラウザ以外の別のアプリケーションからプロトコルを起動しているときにアプリケーションが呼び出されると思います。すべてのブラウザはhttp:,https:などのプロトコルを内部的に管理しています。 magnet:リンクまたはmailto:のようなほんのわずかのプロトコルだけがOSに渡されます。だから、あなたのアプリが他のアプリからのリンクをクリックして動作するかどうかを調べてみてください。簡単な例は、MS Wordでハイパーリンクを作成して開こうとすることです。

あなたのアプリでブラウザから実際にリンクを開く場合は、共有契約を実行するなど、さまざまな方法があります。

+0

質問のコードを見ると、彼はすでにあなたがここで言っていることを試しています。彼のために働いていないだけです。違うものを推薦していますか? –

+1

@ JerryNixon-MSFT私は彼が働いているかどうかチェックしている方法が間違っていると言った。私は彼の英語を理解するのが難しいと感じていますが、私が推測したことは、ブラウザのhttpリンクをクリックしてそのリンクのために自分のアプリを開きたいと思っていることです。私が言いたいことは、ブラウザはOSへのhttpリンクを渡さないということでした。だから、他の方法で作業をチェックしてみるべきです –

関連する問題