当我的应用程序处于打开状态并且用户已选择“始终"”时,如何绕过Android意图过滤器?在我的应用中打开域名?

时间:2016-05-19 14:22:54

标签: android intentfilter

我的应用拦截了我的整个网站域名。但是,我偶尔也无法支持app中的特定页面。发生这种情况时,我想将用户重定向回浏览器。不幸的是,如果用户选择了" Always"用这个域打开我的应用程序(而不是选择"只有一次"),我陷入重定向循环。

1 个答案:

答案 0 :(得分:0)

  1. 使用您的网址
  2. 创建新意图
  3. 使用通用http:// url
  4. 创建第二个临时意图
  5. 获取临时意图的默认分辨率
  6. 将原始意图设置为默认分辨率
  7. 启动原始意图

        Intent intent = null;
        try {
            // #1
            intent = new Intent(Intent.ActionView);
            intent.SetData(Android.Net.Uri.Parse(url));
            // #2
            Intent tempIntent = new Intent(Intent.ActionView, Android.Net.Uri.Parse("http://"));
            // #3
            var resolution = activity.PackageManager.ResolveActivity(tempIntent, Android.Content.PM.PackageInfoFlags.MatchDefaultOnly);
            // #4
            intent.SetComponent(new ComponentName(
                resolution.ActivityInfo.ApplicationInfo.PackageName,
                resolution.ActivityInfo.Name));
            // #5
            StartActivity(intent);
        }
        catch {
        }