Как отслеживать клики пользователей по URL и извлекать их? - PullRequest
0 голосов
/ 19 марта 2012

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

Однако я не знаю, как это распознать, если пользователь нажимает URL-адрес при выполнении действия касания.

Кроме того, даже если можно распознать щелчок по URL, как извлечь URL в виде строки, чтобы я мог проверить ссылку?

Похоже, что API браузера не доступен для использования.

Ответы [ 3 ]

1 голос
/ 19 марта 2012

Есть API.Используйте IntentFilter.Вот пример.Обратите внимание, что поле данных является необязательным:

<activity
        android:name="MyActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <data
                android:host="127.0.0.1"
                android:path="/path"
                android:port="18080"
                android:scheme="http" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
        </intent-filter>
</activity>

Чтобы получить Uri, используйте этот фрагмент в своей Деятельности:

Intent intent = MyActivity.this.getIntent();
Uri uri = intent.getData();
1 голос
/ 19 марта 2012

Вы МОЖЕТЕ подключиться к приложению браузера по умолчанию. Некоторые данные браузера доступны через контент-провайдера. Следующий код даст вам список URL-адресов, которые посетил пользователь:

String columns[] = new String[] { Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.DATE, Browser.BookmarkColumns._ID };
Cursor c = managedQuery(Browser.BOOKMARKS_URI, columns, "bookmark!=1", null, null);

Вы можете поместить ContentObserver в историю браузера, чтобы получать уведомления при посещении пользователем новой страницы. Таким образом, вы должны получать оповещения, даже если пользователь установил нестандартный браузер.

getContentResolver().registerContentObserver(Browser.BOOKMARKS_URI, true, new MyContentObserver(handler));
0 голосов
/ 19 марта 2012

Вы не можете подключиться к приложению браузера по умолчанию. Вам нужно будет написать собственное приложение WebBrowser, которое позволит вам перехватывать нажатия на веб-странице.

...