我希望iOS能够在我的应用程序安装在手机上时使用我的应用程序打开我的域中的URL(例如http://martijnthe.nl),如果不是,则使用Mobile Safari.
我读过可以为此创建一个唯一的协议后缀并将其注册到Info.plist中,但是如果未安装该应用程序,Mobile Safari将会出错.
什么是解决方法?
一个想法:
1)使用在任何桌面浏览器中打开的http:// URL,并通过浏览器呈现服务
2)检查用户代理,如果是移动Safari,打开myprotocol:// URL(尝试)打开iPhone应用程序并打开移动iTunes以下载应用程序,以防尝试失败
不确定这是否有效...建议?谢谢!
我想创建一个网页,如果iPhone没有安装应用程序,将iPhone重定向到应用程序商店的页面,但如果iPhone安装了应用程序,我希望它打开应用程序.
我已经在iPhone应用程序中实现了一个自定义URL,所以我有一个应用程序的URL,如下所示:
myapp://
Run Code Online (Sandbox Code Playgroud)
如果此网址无效,我希望该网页重定向到应用商店.这有可能吗?
如果我没有在手机上安装应用程序并在safari中编写myapp:// url,我得到的只是一条错误消息.
即使存在javascript的丑陋黑客,我真的想知道吗?
我的问题只是关于iOS9!
我有一个HTML登录页面,如果安装了应用程序,我尝试通过URL方案将用户重定向到我的应用程序,否则重定向到Appstore.
我的代码是:
document.addEventListener("DOMContentLoaded", function(event) {
var body = document.getElementsByTagName('body')[0];
body.onclick = function () {
openApp();
};
});
var timeout;
function preventPopup() {
clearTimeout(timeout);
timeout = null;
window.removeEventListener('pagehide', preventPopup);
}
function openApp(appInstanceId, platform) {
window.addEventListener('pagehide', preventPopup);
document.addEventListener('pagehide', preventPopup);
// create iframe
var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
iframe.setAttribute("style", "display:none;");
iframe.src = 'myscheme://launch?var=val';
var timeoutTime = 1000;
timeout = setTimeout(function () {
document.location = 'https://itunes.apple.com/app/my-app';
}, timeoutTime);
}
Run Code Online (Sandbox Code Playgroud)
问题是这个iframe技巧无效Safari iOS9.
知道为什么吗? …
我正在通过iphone上的网络浏览器启动自定义应用程序.
如果未安装该应用程序,我将重定向到网站上的网页.
如果已安装,则会转到应用程序的特定页面
这一切都按预期工作,除了大约1/2秒的徒步旅行显示模式窗口说明如下
无法打开页面Safari无法打开页面,因为地址无效.
我知道地址无效,我想知道是否可以在safari中抑制错误消息.
谢谢
对于未安装的iOS应用程序的链接,如何抑制移动safari"无效地址"警告?
我不想使用智能应用程序横幅(对UX的控制太少).我不想支付也不想与第三方供应商集成($,依赖).
用例很容易理解:在移动Safari中(例如在iPhone上):点击指向我的移动网页友好页面的链接(例如"www.example.com/mw-foo.html").如果我的原生iOS应用程序已安装,请将用户路由/重定向到其中的应用程序深层链接(例如"com.example.app://my-deeplink").(注意从mw url到app uri的映射很容易在apache rewritemap或js集合对象中管理,这很容易.)真正的挑战是:如果未安装应用程序,请禁止"无效地址"弹出警告优雅(允许我决定是否是NOOP /留在mw页面,或将用户路由到应用程序商店以安装应用程序).
如何解决这个糟糕的用户体验?我已经看到了涉及iframe注入和竞争条件的半生不熟的解决方案,其中包含超时,页面隐藏事件监听器和window.location覆盖的"魔术数字"......但是它们似乎都无法可靠地解决弹出窗口问题.这个似乎很接近的解决方案是:http: //www.mazdigital.com/blog/post/2014/deep-links-on-mobile-browsers-demystified ...但它不会阻止警告出现.
我考虑过宣布它是不可能的,除了一些大企业似乎已经管理它(例如LinkedIn).但我没有成功地从外部对他们的方法进行逆向工程.
这里一个好的解决方案将是社区(以及我个人)的巨大利益.如果有人能够准确描述LinkedIn如何管理这个,我将非常感激.另外,请提前感谢有用的反馈/链接到gists或帖子,理想情况下,您实际使用并可以担保.谢谢!
PS这不是真正的DUP: 如何在尝试打开未安装的本机应用程序时阻止iOS safari警报? 因为他们没有回答LinkedIn的做法(建议的答案不起作用).