繁体   English   中英

Android和自定义URL方案

[英]Android and custom URL scheme

我正在使用自定义 url 方案开发应用程序。 它正在 chrome 选项卡中打开一些网页进行身份验证。 这是在 xamarin.forms 中完成的,如下所示:

Browser.OpenAsync(apiUrl + "mobile", new BrowserLaunchOptions
            {
                LaunchMode = BrowserLaunchMode.SystemPreferred,
                TitleMode = BrowserTitleMode.Hide,
            });

如果我返回带有链接的网页并手动单击链接,一切都会按预期工作:

<a href="myscheme://myhost/myparameters">Click here to go the app</a>

但是,如果我将 302 重定向返回到相同的 url,它不会关闭 chrome 选项卡,也不会再次聚焦该应用程序。 如果我在响应中添加 javascript,它不会自动打开 url(关闭 chrome 选项卡并聚焦应用程序)我试过这样的事情:

window.location = url;
window.open(url,'_self');
setTimeout(()=>window.open(url,'_self'),10);

(url 是一个有效变量,甚至在更改位置后尝试了 alert(url),它显示了正确的 url。

为什么只有手动点击链接才有效?

为了维护用户的安全和体验,浏览器禁止在JS中直接使用window.open(URL)打开新链接。

尝试像下面这样改变:

setTimeout(()=>window.open(url,'_self'),500); //The delay time must not be too short or you will be intercepted

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM