当用户通过android/ios-iphone访问移动网站时,应该重定向手机中的相应应用程序。如果他们仍然没有为网站安装相应的应用程序,他们应该被重定向到play商店或苹果商店中的相应应用程序。在App.vue文件中,完成了以下更改。
const userAgent = window.navigator.userAgent;
const isIphone = userAgent.match(/iPhone/);
const isAndroid = userAgent.match(/Android/);
const isIpad = userAgent.match(/iPad/);
beforeCreate: function() {
if ((isIphone === "iPhone" || isAndroid === "Android") && isIpad === "null") {
window.location = `{yourApp}:///`;
}
},
created: function() {
if (isIphone || isAndroid) {
setTimeout(() => {
if (isIphone === "iPhone") {
window.location.href = "https://apps.apple.com/app/id{<app id>}"; //here add your correct app id
} else if (isAndroid === "Android") {
window.location.href =
"https://play.google.com/store/apps/details?id=<app id>"; //here add your correct app id
}
}, 2500);
}
}
但它不会像我预期的那样起作用。我想原因可能是设备识别问题。有人知道如何解决这个问题,或者知道在vue js中进行深度链接的任何其他方法吗?
userAgent.match()
将返回一个Array类型。然后在beforeCreate
钩子中,您将检查这些常量是否是字符串,但它们是数组,可能在其中携带这些字符串。您也可以在created
挂钩中执行类似的检查。这可能就是您的语句从不执行的原因。