Android的URL重写对重定向不起作用(Android url override doesn&#

2019-08-17 18:14发布

我有我在我的Android应用程序正在重写的URL。 点击从电子邮件到链接一个链接弹出的Intent Chooser对话框(“完成此使用”)。 但是点击相同的链接(在<a>从在Chrome标签)(在Android 4)我重定向到该URL,并且不提供Intent Chooser

如果我替换链接<a>一个链接到谷歌的标签Play商店( https://play.google.com ),然后点击该链接弹出的Intent Chooser一次。

是否有一些特别的东西与谷歌Play商店和Chrome,或者我做了配置我的网址出问题了吗? 有什么我可以在HTML做,以使这项工作?

这里的<intent-filter>

<activity
    android:label="@string/app_name"
    android:name="..."
    >
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    <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="https"
              android:host="www.example.com"
            />
        <data android:scheme="http"
              android:host="www.example.com"
            />
    </intent-filter>
</activity>

(重定向到URL也不会弹出的Intent Chooser对话框,但我想我的情况更上方尖锐地表达了我的问题。)

另外值得注意的是,我相当肯定,这是所有的工作,而我的域名下跌。 只要我的域名上线了这个停止工作。 这可能是我的凭空想象,因为我不是100%专注于当时的这个问题。

有没有可能是Chrome的谷歌对待Play商店网址中的特殊,否则就等待从URL打开前一个非200响应Intent Chooser

Answer 1:

很可能是一个真正的/已知的bug。

我提出的一个(但现在已经关闭,因此它似乎将被固定为你与尝试版本): https://code.google.com/p/chromium/issues/detail?id=113140

发现/通过@xbakesk打开: https://code.google.com/p/chromium/issues/detail?id=170925 https://code.google.com/p/chromium/issues/detail?id=230104

如果发现任何其他错误,只是让我知道在评论中,我将增加,或直接编辑我的答案。 如果错误得到关闭,我还会尝试更新的答案。



Answer 2:

我这种修修补补相当多的,它可能更容易只是告诉你,工作的方法。 这适用于2.3.4的装置,同4.2.2的设备上,所以我想它会在大多数设备上工作。

这是我从清单文件意图过滤器:

<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="http" android:host="realsimpleapps.com" android:pathPrefix="/acv/" />
</intent-filter>

这是我的HTML文件:

<a href="http://realsimpleapps.com/acv/aThing">Click Me!</a>

而在我的主要活动我用这个抢无论我已经“aThing”(上述)设置为:

Uri data = getIntent().getData();
if (data != null) {
    List<String> params = data.getPathSegments();
    if (params != null) {
        Log.d(tag, "Param 0: " + params.get(0));
    }
}

把那工作,那么第二个数据元素添加到意图过滤器。 如果在此之后仍然有效,你应该设置。

让我们知道怎么回事。

D b



Answer 3:

我不知道,如果你可以将多个数据元素的意图过滤器添加。 我会用不同的方案两个不同的意图过滤器。

如果您有这是对网页的URL控制,您可以在HTTP更改为自己的定制协议,使您的应用程序将打开,而不是沿着web浏览器提示。



文章来源: Android url override doesn't work on redirect