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的主要内容,如果未能解决你的问题,请参考以下文章