2016-04-11 1 views
0

Допустим мой взгляд Пешеходного перехода в моей Android деятельности показывает страницу, как это:Пешеходные: как получить URL не-веб-ресурс был открыт в новом окне/окне

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

Как я могу перехватить URL из эта ссылка?

Обратите внимание, что поскольку он открывает ссылку в новом «окне», обратные вызовы, такие как XWalkResourceClient.shouldOverrideUrlLoading или shouldInterceptLoadRequest, не вызываются, возможно, потому, что Crosswalk загружает совершенно новый документ.

Существует обратный вызов для создания окна, XWalkUIClient.onCreateWindowRequested, но он не содержит параметров, содержащих URL-адрес, который загружается в новом окне.

Я также знаю, что при создании нового окна пользовательский код может создать новый XWalkView, который будет использоваться для загрузки целевого документа, и я должен установить клиент клиентского ПО и клиентский интерфейс.

То, что я пытался до сих пор:

  • Всех метод в XWalkResourceClient и XWalkUIClient с параметром URL, как в начале координат и виде назначения. Либо они не вызываются, либо параметр пуст или пуст;
  • В XWalkUIClient.onCreateWindowRequested верните подкласс XWalkView, который переопределяет load(), чтобы он мог перехватить URL. Этот метод не вызывается.

Любое предложение очень ценится. Благодаря!

ответ

1

Я уверен, что override shouldOverrideUrlLoading перехватит URL-адрес в вашем html. Я не сделал ничего особенного, и добавить код, как показано ниже:

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 будет называться и пользовательский интерфейс как показано ниже,

enter image description here

+0

можно ли активировать это, когда A HREF нажатии на ссылку в Crosswalk WebView? Если да, то как? – AlexioVay

+0

Мой пример выше - это Crosswalk WebView. – Xiaofeng

Смежные вопросы