我正在做一个可以检测网络钓鱼网站的项目。即当用户在浏览器中浏览网页时点击链接时,将检查该链接是否为网络钓鱼网页。
但是,如果用户在执行点按操作时点击了网址,我不知道如何识别。
此外,即使可以识别网址上的点击,如何以字符串形式提取网址,以便我可以检查链接?
似乎我没有可供浏览器使用的API。
答案 0 :(得分:1)
有一个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在您的Activity中使用此代码段:
Intent intent = MyActivity.this.getIntent();
Uri uri = intent.getData();
答案 1 :(得分:1)
您可以挂钩到默认的浏览器应用程序。某些浏览器数据可通过内容提供商获得。以下代码将为您提供用户访问过的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));
答案 2 :(得分:0)
您无法挂钩到默认的浏览器应用程序。您需要编写自己的WebBrowser应用程序,以便拦截网页上的点按。