Создание IntentFilter для соответствия URL без схемы или хоста - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть активность, определенная таким образом:

[Activity (Label = "MyActivity")]   
[IntentFilter (new[]{Intent.ActionView},
Categories=new[]{Intent.CategoryDefault, Intent.CategoryBrowsable}, 
DataScheme="")] 
public class MyActivity : Activity
{}

или для не-монодроидных людей:

<activity android:label="MyActivity" android:name="com.myapp.android.MyActivity">
  <intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="" />
  </intent-filter>
</activity>

Содержит текстовое представление, которое я заполняю HTML таким образом:

Android.Text.ISpanned spannedContent = Html.FromHtml (someHTML);                     
textView.SetText (spannedContent, TextView.BufferType.Spannable);

Ссылки отображаются как кликабельные, пока все хорошо.Тем не менее, содержание моих ссылок выглядит следующим образом:

Here is a link to: <a href="/blah">blah<a>

Я не могу понять, как сопоставить полученное разрешение намерений с моей деятельностью.Я пробовал несколько комбинаций DataScheme / DataHost / DataPath и с / без категорий.Изменение URL-адреса так:

<a href="customScheme://blah">blah</a> 

и установка соответствующей схемы в фильтре намерений работает, но я бы предпочел не заниматься изменением входящего html.

Есть ли шанс сопоставить это без изменения самого HTML?

1 Ответ

0 голосов
/ 21 ноября 2011

Ну, если бы это было WebView, вы бы использовали loadDataWithBaseURL(), чтобы указать, где относительный путь относительно. Тем не менее, я не вижу, где вы можете сделать это с помощью простого вызова Html.fromHtml(). Вы можете попробовать вариант fromHtml(), который принимает Html.TagHandler в качестве параметра, и заставить его втирать ссылки в нечто реальное.

Однако /blah ни к чему не приведет на Android, поэтому, так или иначе, вам придется изменить HTML.

...