2016-04-11 4 views
0

を開いて取得する方法ですが、私のAndroidの活動における私の横断歩道のビューは次のようにページを示しているとしましょう:横断歩道:非WebリソースのURLを新しいタブ/ウィンドウに

<html> 
<body> 
<a target="_blank" href='http://some-website.com/document.pdf'>Download a PDF</a> 
</body> 
</html> 

私はのURLを傍受することができますどのようにそのリンク?

新しい「ウィンドウ」でリンクを開くため、おそらくCrosswalkがまったく新しいドキュメントを読み込んでいるため、XWalkResourceClient.shouldOverrideUrlLoadingまたはshouldInterceptLoadRequestのようなコールバックは呼び出されません。

ウィンドウ作成のコールバックがありますが、XWalkUIClient.onCreateWindowRequestedですが、新しいウィンドウにロードされているURLを含むパラメータは含まれていません。

新しいウィンドウが作成されると、ユーザーコードは新しいXWalkViewをインスタンス化して宛先ドキュメントをロードすることができます。カスタムリソースクライアントとUIクライアントを設定する必要があります。

  • すべてのメソッドをXWalkResourceClientXWalkUIClientにURLパラメータを使用して、出発地と目的地の景色の両方に:私がこれまで試したどのような

    。それらが呼び出されていないか、パラメータがnullまたは空です。
  • XWalkUIClient.onCreateWindowRequestedには、load()をオーバーライドするXWalkViewのサブクラスを返します。これにより、URLを傍受することができます。そのメソッドは呼び出されません。

ご意見をいただければ幸いです。ありがとう!

答えて

1

私は確かにoverOverrideUrlLoadingがあなたのhtmlのurlを傍受します。 私は特別な何もしなかった、と以下のようなコードを追加します。

mXWalkView.setResourceClient(new XWalkResourceClient(mXWalkView) { 
     @Override 
     public boolean shouldOverrideUrlLoading(XWalkView view, String url) { 
      Log.i(LOGTAG, "shouldOverrideUrlLoading "); 
      startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); 
      return true; 
     } 
    }); 

そして、あなたが提供するHTMLのロード:

mXWalkView.load("file:///android_asset/download.html", null); 

私はXWalkView内のリンクをクリックすると、shouldOverrideUrlLoadingが呼ばれ、UIされます

enter image description here

+0

、以下のようにそれは、hrefのリンクが横断歩道のWebViewでクリックされたときに、これを有効にすることは可能ですか?はいの場合、どうですか? – AlexioVay

+0

上記のサンプルはCrosswalk WebViewです。 – Xiaofeng

関連する問題