Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fail to detect iPad ios 13+ #20

Open
jooohyunpark opened this issue Oct 4, 2019 · 8 comments
Open

Fail to detect iPad ios 13+ #20

jooohyunpark opened this issue Oct 4, 2019 · 8 comments

Comments

@jooohyunpark
Copy link

jooohyunpark commented Oct 4, 2019

On latest ios(13+) Safari, it detects iPad as a desktop. Works properly on chrome and other mobil devices. Could you take a look at this issue?

@dotneet
Copy link
Collaborator

dotneet commented Oct 5, 2019

Hi, @byjoohyunpark

With latest iPad, Desktop Mode is enabled by default.
So I think that that is expected result.

@jooohyunpark
Copy link
Author

Hey @dotneet, thanks for the reply. Safari in IPad IOS 13+ now forces desktop mode as a default. This issue is solved by disabling it. But I guess eventually we will need some extra layer to deal with this setup.

@ruchitabavishi
Copy link

I am having the same issue, can you please let me know how did you disable the force desktop mode.

@sunilrana123
Copy link

You can create one plugin like below as a temporary solution: This way you can set the device to tablet in case of ipad

export default (context, inject) => {
if(context.store.state.userAgent.includes('iPad')) {
inject('device', { isTablet: true });
}
};

@iliyaZelenko
Copy link
Contributor

@sunilrana123 your code will overwrite all $device property, so there will be only isTablet: true. You need to pass the remaining properties to save them:

export default function (ctx, inject) {
  const customIsTabet = ctx.isTablet || ctx.store.state.userAgent.includes('iPad')

  inject('device', {
    isTablet: customIsTabet,
    isMobile: ctx.isMobile,
    isMobileOrTablet: ctx.isMobileOrTablet,
    isDesktop: !ctx.isMobileOrTablet,
    isIos: ctx.isIos,
    isWindows: ctx.isWindows,
    isMacOS: ctx.isMacOS,
    isDesktopOrTablet: !ctx.isMobile,
    isAndroid: ctx.isMobileOrTablet && !ctx.isIos
  })
}

Hope this helps.

@Atinux
Copy link
Contributor

Atinux commented Jan 27, 2021

You can now overwrites any flags or add new ones by creating a Nuxt plugin with the v2 of this module.

See https://github.com/nuxt-community/device-module#add-a-custom-flag

@iBobik
Copy link

iBobik commented Nov 7, 2021

iPad even in desktop mode could be detected by a touch events, because no macOS has touch screen.

@krkaa
Copy link

krkaa commented Nov 11, 2021

iPad useragent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15". How to detect is tablet for iPad?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants