Android:使用我的自定义方案重定向到 URL 不起作用

2024-01-02

我想 SOF 上有一些针对此类主题的答案,但仍然有些东西对我不起作用。 重要的是我在 WebView 中从某个站点重定向到类似“myapp://something”的 URL。之前,此重定向是由站点的 API 进行的,其中应用程序已注册以使用上述方案获取 URL 回调。重定向已记录,URL“myapp://something”已在那里确认,但是,例如,重定向到http://some.host http://some.host内部 WebView 可以被引导到外部浏览器或(当 WebViewClient.shouldOverrideUrlLoading 设置为返回 false 时)到同一个 WebView,使其尝试打开 URL,而不是让系统发送意图。 在上面提到的两种情况下,重定向到 myapp://something 不会导致任何结果,尽管我为处理它而创建的活动的意图过滤器的设置如下:

<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="myapp" />
</intent-filter>

这是提出的一种解决方案Android url 覆盖不适用于重定向 https://stackoverflow.com/questions/15501990/android-url-override-doesnt-work-on-redirect and in http://developer.appcelerator.com/question/120393/custom-url-scheme---iphone--android http://developer.appcelerator.com/question/120393/custom-url-scheme---iphone--android有人可以告诉我,这是 WebView 的错误,没有有效的重定向,还是我的意图过滤器设置不正确?


好吧,我终于得到答案了。无论如何,从 WebView 重定向到自定义方案 URL 是不可能的。这就是为什么应该进行显式 Intent 调用,并使用此自定义方案 URL 字符串作为附加数据。 在代码中,这看起来像这样:

WebView.setWebViewClient(new WebViewClient() {

      public boolean shouldOverrideUrlLoading(WebView view, String url) {
      //called for any redirect to stay inside the WebView    

          if (url.contains("myapp")) { //checking the URL for scheme required
                                       //and sending it within an explicit Intent
              Intent myapp_intent = new Intent(Intent.ACTION_VIEW);
              myapp_intent.setData(Uri.parse(url));
              myapp_intent.putExtra("fullurl", url);
              startActivity(myapp_intent);

              return true; //this might be unnecessary because another Activity
                           //start had already been called

          }
          view.loadUrl(url); //handling non-customschemed redirects inside the WebView
          return false; // then it is not handled by default action           
 }

所以也许这是 WebView 的一个错误或一个功能,我不知道。但在这种情况下,显式的 Intent 调用是唯一稳定且完美运行的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:使用我的自定义方案重定向到 URL 不起作用 的相关文章

  • Android:使用 ActivityResultLauncher 时如何区分多个意图

    我正在创建一个意图选择器来在手机相机应用程序和图库 文件管理器之间进行选择 Intent chooserIntent Intent createChooser clickPhoto Set Image Using chooserIntent
  • 如何使用 Python 获取重定向的 URL

    在 Python 中 我使用 urllib2 打开 url 此 url 重定向到另一个 url 该 url 又重定向到另一个 url 我希望在每次重定向后打印出网址 例如 gt 重定向到 A gt B gt C gt D 我想打印 B C
  • Android Webview:从 javascript 调用的 java 方法执行 javascript

    我有以下 JavaScript 代码 function mine var i 3 AndroidObject call where Android对象是java的javascript接口 它有方法call WebView myWebView
  • PHP - 函数内的 header("Location:") 重定向而不调用函数

    我正在使用一个名为的函数headerLocation 以便正确重定向 这是该函数的相关部分 我用它来重定向 然后显示适当的消息 个人偏好 function headerLocation location message SESSION ou
  • 处理多个自动重定向的正确方法是什么?

    我有一个网站 基本上允许客户构建一个包含可配置项目的购物车 用户将选择一个项目 系统会提示他们选择他们想要的第一个选项 然后他们将被发送到第二个步骤 在那里他们选择第二个选项 等等 步骤数和选项数是可变的 因为它们是由客户定义的 通常该项目
  • Android Intent通过jar

    我开发了一个 Android 应用程序 它有一个 UI 设计 如用户名 密码 在我在另一个应用程序中使用 Jar i 之后 我将我的应用程序转换为 jar 这意味着我将我的应用程序转换为库项目 我遵循此方法 1 我将 jar 添加到参考库路
  • 如何从 Android 服务获取应用程序上下文?

    我有一个正在运行并监听麦克风输入的 Android 服务 我希望它在满足特定条件时启动一项活动 为了创建意图 我需要应用程序上下文 我怎么才能得到它 Intent i new Intent ctx SONR class i addFlags
  • 如果 CodeIgniter 方法不存在,则重定向到默认方法。

    我正在使用 CodeignIter 并且正在寻找一种在被调用方法不存在时为单个控制器编写自定义处理例程的方法 假设你打电话www website com components login In the components控制器 没有一个方
  • 从包中获取参数

    我正在尝试将参数从我的活动传递到片段 并且我正在使用以下代码 Override protected void onCreate Bundle savedInstanceState super onCreate savedInstanceSt
  • 使用 htaccess 将 http://www、http:// 和 https://www 重定向到 https:

    在我的网站上 我在非 www 版本的域上安装了 SSL 证书 我想使用 htaccess 将 http www http non www 和 https www 重定向到 https 我可以将 www 转换为非 www 但 https ww
  • Android:带有链接突出显示的Webview

    我正在 android 上使用 WebView 似乎无法弄清楚如何使库存浏览器中出现的橙色突出显示出现在我的 webview 上 为了更清楚地说明这一点 让我举个例子 在 Android 浏览器中 如果您单击链接 图像 视频 它将显示一个覆
  • 如何在 Android 11 中创建从图库中选择图像的意图?

    我可以在 Kotlin 中创建从 Android 画廊中选择图像的意图 如下所示 val intentGallery Intent Intent ACTION PICK MediaStore Images Media EXTERNAL CO
  • 如何让一个活动只运行一次? [复制]

    这个问题在这里已经有答案了 可能的重复 如何仅在首次运行应用程序时显示警报对话框 https stackoverflow com questions 5409595 how do i show an alert dialog only on
  • Android 意图在 Google+ 社区屏幕上启动 Google+ 应用

    在 Google Android 应用程序中显示 Google 信息页已经有一个很好的问题 在 Android 中通过 Intent 打开 Google Plus 页面 https stackoverflow com questions 1
  • Web.config 将所有路径重定向到index.php - 不起作用

    我主要使用 Apache 和 htaccess 但我目前正在开发一个托管在 Windows 服务器上的网站 Web config 给我带来了很多问题 我试图将所有 URL 请求重定向到 index php 以便 PHP 脚本可以解析 URL
  • 将 http 和 https 请求重定向到新主机

    在 Apache 2 4 6 中 我想重定向来自http A org foo and https A org foo to https B org foo 我正在使用以下指令
  • 在 python 中将变量传递给重定向上的模板

    我对 Python 比较陌生 所以请原谅任何幼稚的问题 我的主页有 2 个输入 一个用于 产品 一个用于 电子邮件 当用户单击 提交 时 他们应该被发送到 success 其中会显示 您已请求 产品 您将通过 电子邮件 收到通知 我试图找出
  • 是否必须删除 Intent extra?

    这可能是一个愚蠢的问题 但是是否有一条规则规定消费活动必须显式删除 Intent 额外内容 或者只有在回收 Intent 对象时才如此 换句话说 如果我总是通过执行以下操作来链接到下一个活动 Intent i new Intent MyCu
  • JavaFX:在 WebView img 标签中未加载本地图像

    以下是我的代码 一切安好 我可以加载远程页面 我可以放置 HTML 内容 但我的img标签显示一个X标志表示无法加载图像 Note 我的图像与类位于同一个包中JavaFX在 Smiley 文件夹中 我可以列出所有图像 这意味着路径没有问题
  • 将具有子目录的域转发到具有子目录的其他域

    我有一个热爱域名的客户 更喜欢转发域名 其中许多域没有与其关联的网站 它们仅用于营销和转发 我知道如何轻松地将一个域转发到另一个域 但我好奇的是如何将这些域的特定 url 转发到其他特定 url 例如 www site1 com 目录 gt

随机推荐

  • Android以太网使用dhcp配置IP [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个带有以太网接口的安卓盒子 android SDK 中没有用于配置以太网的 Java 类 作为最后的手段 我使用 shell 命令来配置以太网
  • 直接从 jar 文件启动 Java applet

    目标是从 jar 文件运行小程序 问题是该小程序似乎只想从分解的 jar 文件运行 Internet 上的示例建议使用此小程序标签 这甚至不会尝试查看 jar 文件并失败 Caused by java io IOException open
  • 从 .NET 程序获取全局根

    我最近开始使用 ANTS 分析工具进行生产工作 除了对它们的强大感到惊讶之外 我忍不住想知道它们是如何工作的 例如 最有用的功能之一可以让您可视化正在运行的程序的全局根 以及对不同类型值的引用数量 这个工具如何获取这些信息 全面披露 我是
  • 在 Firebase 中创建空子记录

    我正在尝试使用 Firebase 数据视图创建一个子节点 但似乎这是不可能的 因为创建节点直接消失或者随时不显示 我尝试将值字段留空 但这根本不起作用 就像将 null 写入值字段一样 我做错了吗 Fabian Null 和空值与不存在的记
  • emacs lisp 和 c-mode:我什么时候在评论区

    我想在 c c 缓冲区中搜索正则表达式 但我想避免表达式与注释区域匹配 有没有办法使用 c 模式来知道一堆文本是否在注释区域内 或一个点是否在注释区域内 解决这个问题的方法是syntax ppss它适用于 C C 和大多数主要模式 例如 n
  • SequelizeEagerLoadingError 与 Sequelized

    我在尝试运行 Sequelized 查询时遇到错误 当我只询问用户时 该查询有效 但当我添加 包含 并尝试与另一个表 博客表 连接时 该查询会中断 这是我的用户模型 const Model DataTypes require sequeli
  • 为什么C++20不支持乱序指定初始化器?

    当我读书的时候C 参考 https en cppreference com w cpp language aggregate initialization Designated initializers 我对这一段有一个疑问 注 乱序指定初
  • 打包正方形和矩形的算法是什么?

    与Windows 8 Slate界面类似 如何用正方形和矩形很好地填充屏幕而不留下孔洞 假设 矩形基本上是两个相连的正方形 矩形可以是水平的或垂直的 屏幕宽度是正方形宽度的3倍 屏幕从上到下被填满 这样屏幕的最低部分可能无法完全对齐 矩形和
  • 是否可以手动更新构建变量 $(Build.BuildId)

    我正在帮助朋友进行 VSTS 构建 我们正在使用这两个构建标识符 构建 构建Id 构建 构建编号 这是特定于 Xamarin iOS 构建的 我们在其中使用新的 VSTS 构建任务来更新 Info Plist 我们需要使用 Build Bu
  • Python 输入清理

    我需要做一些非常快速的输入清理 我想基本上转换所有 lt gt to lt gt 我想达到相同的结果 replace lt lt replace gt gt 无需多次迭代字符串 我知道关于maketrans和这个结合str translat
  • Meteor 加载的 css 和 js 文件的顺序

    有没有办法指定Meteor自动加载的css或js文件的顺序 搜索了文档并找不到任何内容 我问这个问题是因为我正处于玩弄阶段 并且正在尝试将 Twitter Bootstrap 与 Meteor 一起使用 在 Bootstrap 附带的示例中
  • 无法正常退出XAMPP

    我用的是win10系统 我的 xampp 面板是 v3 2 4 xampp可以正常运行mysql和apache 但是当我想退出时 程序会报错 然后没有任何反应 需要帮助 请 我怎样才能解决这个问题 Add 在此输入图像描述 https i
  • 循环通过repeater控件来获取asp.net中Textbox的值

    我正在尝试循环遍历我的中继器控件并获取文本框值 但是 我收到错误 你调用的对象是空的 我的代码是 Dim txtField As TextBox Dim j As Integer 0 Confirm if user has entered
  • 需要一个计时器在特定时间每 5 分钟触发一次,直到作业完成

    我需要帮助为我的应用程序设置特定类型的计时器 我的场景是这样的 我想在一天中的特定时间 例如凌晨 4 00 运行计时器 然后 该计时器执行许多不同的事件 每个事件都会从数据库中获取数据并进行处理 使用后台工作人员 所有不同的事件需要不同的时
  • 存储过程变量

    恐怕我的术语阻碍了我在互联网上找到我想要的结果 不管怎样 我有一个相当复杂的存储过程 我需要向其传递几个变量 有没有办法在过程开始时定义变量 并在整个过程中引用该变量 而不是通过存储过程多次输入这些变量 例如 ID 号 1075 1050
  • 用画布绘制人物并设置其角度的最佳方法是什么?

    我这里遇到了大麻烦 我需要在床上画一个娃娃 就像在医疗床上一样 但我似乎做不到 我尝试创建自定义视图 然后开始绘图 我用了canvas drawCircle and canvas drawRect 我设法画了这个娃娃 但我根据自定义视图的高
  • 通过 MySQL 连接器的数据库连接 Python 与 CGI 无法正常工作

    实际上我使用的是 Ubuntu 16 04 和 python3 因此 当我在单个文件中导入 MySQL connector 和 CGI 时 该文件无法正常工作 显示错误 usr bin python3 import cgi import m
  • 使用 Angular 7 按钮获取值输入文本

    我想获取输入文本的文本并使用按钮将其保存在变量中 将其用作 firebase 查询中的参数 html
  • Woocommerce 更新购物车按钮操作后正在运行哪个 Hook

    我需要知道单击购物车页面中的更新购物车按钮后正在运行哪个挂钩 那是在购物车页面我们有 4 个按钮 update cart continue shopping proceed to checkout apply coupon 所以我想知道单击
  • Android:使用我的自定义方案重定向到 URL 不起作用

    我想 SOF 上有一些针对此类主题的答案 但仍然有些东西对我不起作用 重要的是我在 WebView 中从某个站点重定向到类似 myapp something 的 URL 之前 此重定向是由站点的 API 进行的 其中应用程序已注册以使用上述