Android 点击 URL 打开修改后的 URL

Posted

技术标签:

【中文标题】Android 点击 URL 打开修改后的 URL【英文标题】:Android tap URL opens modified URL 【发布时间】:2016-02-09 23:31:03 【问题描述】:

我对 Java 和 android 编程完全陌生。我已经安装了 Android Studio 并尝试了一些示例。我需要实现一个简单的应用程序

1) Android 在点击 http URL 时提供 Firefox 或 Chrome 的替代方案,

2) 过滤和修改被点击的 URL(通过简单的dirnameconcat 操作)并在浏览器中打开结果。

在 bash 中,firefox "$(filmod $1)" 之类的东西可以完成这项工作(对于 filmod 的一些合适的实现),但是在 Java 和 Android Studio 中会是什么样子呢?谢谢,nbpf

【问题讨论】:

【参考方案1】:

对于第一个问题,请查看此链接http://developer.android.com/training/app-links/index.html,简而言之,您需要设置一个意图过滤器/处理程序。

使用 Android Studio,创建 helloWorld 项目并对应用程序进行更改。

1 个问题(当您点击手机上的某个链接时,这将使您的应用与 mozila、chrome...一起出现在列表中):

在您的清单中添加这行 INSIDE “活动”标签。

<intent-filter android:autoVerify="true">
            <data android:scheme="http" />
            <data android:scheme="https" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

2 个问题:

在MainActivity的onCreate()回调函数中,放上这段代码:

    Intent intent = getIntent();
    String action = intent.getAction();
    Uri data = intent.getData();

    String link = intent.getScheme();
    String linkData = intent.getDataString();

    Log.d("TMS","action is: " + action);
    Log.d("TMS","link is: " + link);
    Log.d("TMS","linkData is: " + linkData);

String linkData 是您的 URL 名称。在那里你有你的字符串格式的链接,你可以将它传递给 textView 或 WebView ......等等......我已经在 Android 5.1 上测试过这个,但我不t see any reason that it shouldnt 在 API 10 上工作,直到 API 23。

如果你愿意,我可以把我测试过的项目分享给你。

【讨论】:

谢谢阿德里安。假设我已经成功解决了 1) 问题,并且在点击 URL 时,我可以选择启动我的应用程序。在这一点上,我对 2) 的主要困难是如何在局部变量中获取触发应用程序打开的 URL。从那里,我想我可以弄清楚如何对其进行操作。

以上是关于Android 点击 URL 打开修改后的 URL的主要内容,如果未能解决你的问题,请参考以下文章

如何在点击 android 推送通知时在外部浏览器中打开 url?

无需在 Android Studio 中打开浏览器即可点击 URL

如何基于按钮单击在新屏幕上打开webview中的URL

Android 点击Url(短信链接)打开App 的调研与实现

Android 点击Url(短信链接)打开App 的调研与实现

Android Studio的Github教程