禁止Safari将数字识别成电话号码,增加特殊效果


用ipad访问我的网站时,发现网站上的一串数字变颜色了(原来是红色的),现在变成了蓝色。一开始以为网站出了什么问题,后来在PC端查看,发现颜色依旧是红色。在ipad上点击还会弹出菜单呼叫的选项,基本可以断定是Safari搞的鬼了。Safari识别电话号码功能会自动将数字识别成电话号码。


为了这个问题,到Safari的官网翻找,发现Safari有个私有meta属性可以解决这个问题。在<head>...</head>之间添加以下代码即可解决。


<meta name="format-detection" content="telephone=no" />




在Web前端实现移动配置(Mobile Config)文件在Safari浏览器自动识别和安装,通常需要借助苹果的插件技术,尤其是`apple-app-site-association` (Association Domains) 和 `WKWebView`。以下是基本步骤: 1. 创建`apple-app-site-association`文件(`.json`格式):这个文件包含应用程序的URLs和它们对应的应用程序ID。这告诉Safari哪些网站应该被视为特定应用的一部分。示例内容如下: ```json { "applinks": { "apps": [], "details": [ { "appID": "your.app.id", "paths": ["/path/*"] } ] } } ``` 2. 将此文件上传到服务器并与您的网站关联的URL一起提供(例如:`https://yourdomain.com/apple-app-site-association`)。 3. 使用WKWebView(WebKit版的WebView)替代普通的HTML渲染:WKWebView支持`WKWebViewConfiguration`,其中可以设置`WKUserContentController`来处理自定义JavaScript行为。通过JavaScript,您可以监听特定事件(如页面加载完),然后尝试检测是否是苹果设备并检查`apple-app-site-association` 文件的存在。 4. JavaScript 代码示例: ```javascript if (window.navigator.standalone && window.MutationObserver) { const observer = new MutationObserver((mutationsList) => { mutationsList.forEach((mutation) => { if (mutation.type === 'childList') { // 检查apple-app-site-association文件是否存在 fetch('https://yourdomain.com/apple-app-site-association').then((response) => { if (response.ok) { // 应用安装脚本或其他操作... } else { console.error('Failed to load Mobile Config'); } }); } }); }); // 观察body变化 observer.observe(document.body, { childList: true }); } ``` 5. 需要注意的是,为了触发自动安装,用户必须先访问过含有`apple-app-site-association`文件的网页,并在Safari设置中将该站点添加到“允许从此网站安装”的列表中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值