等同于Safari的googlechrome://myurl.com

时间:2018-11-22 16:52:43

标签: ios web mobile mobile-safari

我的Web应用程序出现一些问题,如果用户单击Facebook应用程序中的链接,它将使用它自己的浏览器/网络视图,但是必须使用Safari或Chrome才能运行该页面。

研究(this issue)时,我发现您可以在Android设备上使用 googlechrome:// navigate?url = example.com 打开chrome和 googlechrome从iOS://://myurl.com 也可以打开Chrome,但是如果用户的设备是iOS,则我需要一种方法来打开Safari。

有办法吗?

Ps .:用户在Facebook中单击的链接将转到登录页面,此页面上有一个指向Web应用程序的按钮。当用户单击此按钮时,我将打开Chrome / Safari。

谢谢!

1 个答案:

答案 0 :(得分:0)

SO中有一些类似主题的答案。类似于

NSString *yourUrl = @"http://yourURL";
SFSafariViewController *svc= [[SFSafariViewController alloc] initWithURL:[NSURL URLWithString: yourUrl]];
[self presentViewController:svc animated:YES completion:nil];

在Swift中,这是

let yourUrl = "http://www.yourURL.com";
let svc = SFSafariViewController.init(url: URL);
svc.delegate = self
present(svc, animated: true);

应该工作。

如果您使用的是Javascript,请看一看 Force link to open in mobile safari from a web app with javascript

似乎您需要做类似的事情

HTML:

<div id="foz" data-href="http://www.google.fi">Google</div>

JS:

document.getElementById("foz").addEventListener("click", function(evt) {
    var a = document.createElement('a');
    a.setAttribute("href", this.getAttribute("data-href"));
    a.setAttribute("target", "_blank");

    var dispatch = document.createEvent("HTMLEvents");
    dispatch.initEvent("click", true, true);
    a.dispatchEvent(dispatch);
}, false);

在(http://www.hakoniemi.net/labs/linkkitesti.html)上进行测试

来源:

Open links in Safari instead of UIWebVIew?

How to force links to open in iOS Safari?

https://www.hackingwithswift.com/example-code/uikit/how-to-use-sfsafariviewcontroller-to-show-web-pages-in-your-app

Force link to open in mobile safari from a web app with javascript