当我在 Cordova 中进行重定向时,应用程序被重定向到浏览器
app is redirected to browser when I do a redirection in Cordova
我的应用程序重定向到一个网站。
在我以前的应用程序中,当我进行重定向时,它会在应用程序中打开网站,而不是在浏览器中。
为了做最后一个,我升级了 cordova、gradle 和 android-studio。
我需要哪个版本才能在应用程序中打开网站?
提前致谢
这是因为在旧版本中,没有包含白名单。在较新的版本中,现在您网络外的每个 url 都被列入黑名单。这意味着如果您使用 link(html“a”标签),那么它会抛出错误。如果在js中使用window.location
之类的,cordova会在浏览器中打开。
因此,为了解决这个问题,您需要将要访问的域列入白名单。
在您的 config.xml 中添加:
<plugin name="cordova-plugin-whitelist" source="npm" />
<allow-navigation href="https://example.com/*" />
<allow-intent href="https://example.com/*" />
<access origin="https://example.com/*" />
您可以使用通配符 * 将所有内容包含在 folder/domain/subdomain 中,如上所示,但您不必使用它。您可以添加一个 url,例如:https://mywebsite.com/myfolder/index.php
。如果您这样做,如果您的客户端需要加载资源,您可能需要将多个 url 列入白名单。例如:
如果您的客户端从 cdn 加载 JQuery,那么您也需要将 url 列入白名单。
当然要确保将 example.com 替换为您的域名或 url
还要确保您信任您列入白名单的来源,因为这样人们就可以将来自这些来源的脚本和页面加载到您的应用程序中,以欺骗使用您应用程序的用户。
至于 Cordova 版本,我真的不认为它很重要,但如果我是你,我会使用最新的,因为它支持更好的更新 android 版本,例如 android 9 & 10.
我的应用程序重定向到一个网站。 在我以前的应用程序中,当我进行重定向时,它会在应用程序中打开网站,而不是在浏览器中。 为了做最后一个,我升级了 cordova、gradle 和 android-studio。
我需要哪个版本才能在应用程序中打开网站?
提前致谢
这是因为在旧版本中,没有包含白名单。在较新的版本中,现在您网络外的每个 url 都被列入黑名单。这意味着如果您使用 link(html“a”标签),那么它会抛出错误。如果在js中使用window.location
之类的,cordova会在浏览器中打开。
因此,为了解决这个问题,您需要将要访问的域列入白名单。
在您的 config.xml 中添加:
<plugin name="cordova-plugin-whitelist" source="npm" />
<allow-navigation href="https://example.com/*" />
<allow-intent href="https://example.com/*" />
<access origin="https://example.com/*" />
您可以使用通配符 * 将所有内容包含在 folder/domain/subdomain 中,如上所示,但您不必使用它。您可以添加一个 url,例如:https://mywebsite.com/myfolder/index.php
。如果您这样做,如果您的客户端需要加载资源,您可能需要将多个 url 列入白名单。例如:
如果您的客户端从 cdn 加载 JQuery,那么您也需要将 url 列入白名单。
当然要确保将 example.com 替换为您的域名或 url
还要确保您信任您列入白名单的来源,因为这样人们就可以将来自这些来源的脚本和页面加载到您的应用程序中,以欺骗使用您应用程序的用户。
至于 Cordova 版本,我真的不认为它很重要,但如果我是你,我会使用最新的,因为它支持更好的更新 android 版本,例如 android 9 & 10.