gpt4 book ai didi

javascript - 从网站重定向到 Android 应用程序?

转载 作者:太空狗 更新时间:2023-10-29 14:55:28 25 4
gpt4 key购买 nike

当用户打开网站时,我希望发生以下两种情况之一:

  1. 如果安装了 mycoolapp 应用程序,则使用自定义 url 方案 mycoolapp://将用户重定向到该应用程序
  2. 如果应用程序未安装,请留在当前页面上,不要发布或重定向到未知页面或错误弹出窗口。

情况 1 很简单,您可以使用以下代码:

window.location = "mycoolapp://"; 

如果应用程序安装在设备上,这将起作用。当应用程序未安装时,它会将用户重定向到一个未知的空白页面。

对于案例 2,我有一个使用 iFrame 的解决方案,它在 iOS 和 native Android 浏览器上运行良好。它不适用于 Chrome for Android。

var redirect = function (location) {
var iframe = document.createElement('iframe');
iframe.setAttribute('src', location);
iframe.setAttribute('width', '1px');
iframe.setAttribute('height', '1px');
iframe.setAttribute('position', 'absolute');
iframe.setAttribute('top', '0');
iframe.setAttribute('left', '0');
document.documentElement.appendChild(iframe);
iframe.parentNode.removeChild(iframe);
iframe = null;
};

redirect('mycoolapp://');

安装应用程序后,它可以在 native Android 浏览器上运行,但在 Chrome for Android 上没有重定向。页面上没有任何反应。

如何在未安装应用程序时重定向到在 Chrome for Android 上运行的应用程序而不重定向到空白页面?

编辑:我知道您可以使用 Intent

window.location = "intent://#Intent;package=com.mycoolapp;scheme=mycoolapp;launchFlags=268435456;end;";

这不是我想要的,因为如果未安装应用程序,它会在 google play 上启动应用程序页面。有没有办法让它不重定向到 google play?

最佳答案

 Add this in manifest file,note the scheme.

<intent-filter>
<data android:scheme="startci" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>

在html中给出代码,方案与 list 文件中的相同。

<a href="intent:#Intent;scheme=startci;package=gramener.star;end">click here</a>

如果你想给你的应用添加参数,使用这个

<a href="intent:#Intent;scheme=startci://open?url_param=hi santhosh;package=gramener.star;end">click here</a>

如果应用程序未安装,那么如果您想重定向到其他页面,请像这样添加备用网址。必须对 url 进行编码

<a href="intent:#Intent;scheme=startci://open?url_param=hi santhosh;package=gramener.star;S.browser_fallback_url=http%3A%2F%2Fzxing.org;end">click here</a>

获取参数添加下面的代码

 Uri data = this.getIntent().getData();
if (data != null && data.isHierarchical()) {
if (data.getQueryParameter("url_param") != null) {
String param = data.getQueryParameter("url_param");
Log.d("the param is",param);
//do something here
}
}

关于javascript - 从网站重定向到 Android 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25643272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com