Javascript 当用户代理未更改时,如何检测Gmail Webview中的Safari与iOS 11上从主屏幕启动的Safari之间的差异?
我维护一个向用户发送通知的应用程序,其中包含表单链接。这些表单具有图像捕获控件。当通过网络视图中的另一个应用程序在Safari中打开应用程序时,这些控件在Safari中中断 好的,我考虑让Javascript检测它是否在webview中,并尝试引导用户直接打开他们的浏览器。除了,当通过Gmail打开Safari时,用户代理字符串与在iOS 11上直接从主屏幕打开Safari时,用户代理字符串是相同的 因此,我目前在谷歌上看到的所有检测网络视图的方法,比如NPM的Javascript 当用户代理未更改时,如何检测Gmail Webview中的Safari与iOS 11上从主屏幕启动的Safari之间的差异?,javascript,ios,webview,safari,Javascript,Ios,Webview,Safari,我维护一个向用户发送通知的应用程序,其中包含表单链接。这些表单具有图像捕获控件。当通过网络视图中的另一个应用程序在Safari中打开应用程序时,这些控件在Safari中中断 好的,我考虑让Javascript检测它是否在webview中,并尝试引导用户直接打开他们的浏览器。除了,当通过Gmail打开Safari时,用户代理字符串与在iOS 11上直接从主屏幕打开Safari时,用户代理字符串是相同的 因此,我目前在谷歌上看到的所有检测网络视图的方法,比如NPM的都是webview,而用户代理/r
都是webview
,而用户代理/regex谓词都不起作用。我能看到的唯一有意义的区别是,navigator.mediaDevices.getUserMedia
在webview中未定义
但是知道getUserMedia
是未定义的并不能告诉我用户是否无法使用这些控件,或者用户是否只需要在他们用来访问通知的应用程序范围之外直接进入他们的默认浏览器
在我们用额外的数据来装饰我的链接以跟踪用户来自何处之前,如果用户代理字符串没有更改,是否有办法检测Safari是否通过iOS 11上的另一个应用程序打开?您能为电子邮件中的链接添加查询字符串参数或其他url吗?如果它是一个不同的URL,并且用户使用的是ios,那么你知道它可能是一个webview?@floor,我们必须解决如何处理仍在流通且缺少所述查询字符串的旧电子邮件。这一点,我知道我可能在Web视图中可能会给我假阳性,在这里用户真的没有用户媒体支持。是的,没有考虑清理。也许你可以从一个参考url或http请求的某个属性中检测到这个服务器端,该属性表示它来自gmail而不是其他地方?我只是在猜测sorry@floor别担心。谢谢你叫我进来!