React-native: Android рдкрд░ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди 'enableHighAccuracy' рд╣рдореЗрд╢рд╛ рдмрд╛рд╣рд░ рд░рд╣рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдордИ 2016  ┬╖  239рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/react-native

рдПрдВрдбреНрд░реЙрдЗрдб рдРрдк рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛, 6.1 рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдореЗрд░реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди, рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдПрдк рд╣рдореЗрд╢рд╛ Location request timed out рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЙрд▓рдмреИрдХ рджреЗрддрд╛ рд╣реИред

navigator.geolocation.getCurrentPosition(
      (position) => {
        console.log(position);
       },
       (error) => {
        console.log(error)
      },
      {enableHighAccuracy: true, timeout: 20000, maximumAge: 10000}
);

рдЕрдЧрд░ рдореИрдВ enableHighAccuracy рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЧрд▓рдд рдкрд░ рдЯреЙрдЧрд▓ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ Api рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдореЛрдб рдореЗрдВ, рдЯрд╛рдЗрдордЖрдЙрдЯ рд╣рдореЗрд╢рд╛ рдЙрддрдирд╛ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ рдЬрдм рддрдХ рдореИрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╡рд┐рдХрд▓реНрдк рдЕрд░реНрдерд╛рдд 20 рд╕реЗрдХрдВрдб рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реВрдВред

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдХрд┐ рджреЗрд╡ рдореЛрдб рдмрдВрдж рд╣реЛ рдЬрд╛рдПред

рдХреНрдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдореЛрдб рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

Geolocation Bug Help Wanted Android Ran Commands Locked

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

enableHighAccuracy рдпрд╛ рддреЛ true рдпрд╛ false рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП getCurrentPosition рд▓рд┐рдП 3 рддрд░реНрдХ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рд╕рднреА 239 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

@ acapop77 рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдЕрдиреБрдорддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

рдореБрдЭреЗ рдЖрд░рдПрди 0.25.1 рдкрд░ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдЙрдЪреНрдЪ рдФрд░ рдирд┐рдореНрди рд╕рдЯреАрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдЕрдВрдд рдореЗрдВ рдореБрдЭреЗ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рд╛ рдЬреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред

рдпрд╣рд╛рдБ рдореЗрд░реЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ - рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдЖрдк рд╕реНрдЯреЙрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╡реАрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ - рдПрдореБрд▓реЗрдЯрд░:

  1. рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ "рд╕реЗрдЯрд┐рдВрдЧреНрд╕> рд╕реНрдерд╛рди" рдкрд░ рдЬрд╛рдПрдВ (рдЬреИрд╕реЗ рдЖрдк рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╣реЛрдВрдЧреЗ) рдФрд░ рдореЛрдб рдХреЛ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред
  2. рдЖрд╡реЗрджрди рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред
  3. "рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд┐рдпрдВрддреНрд░рдг" рдмрдЯрди рджрдмрд╛рдПрдВ ("..." рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рд╕реНрдерд╛рди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдЧрд▓рд╛ рдЖрдкрдХреЛ рдиреАрдЪреЗ рдЬреАрдкреАрдПрд╕ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдбреЗрдЯрд╛ рдФрд░ "рднреЗрдЬреЗрдВ" рдмрдЯрди рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдмрд╕ "рднреЗрдЬреЗрдВ" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд┐рдпрдВрддреНрд░рдг рдореЗрдиреВ рдмрдВрдж рдХрд░реЗрдВред
  4. рдЖрд╡реЗрджрди рдкреБрдирдГ рд▓реЛрдб рдХрд░реЗрдВред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ - 'рдПрдХ рд╕рдордп рдХреЗрд╡рд▓ рдЖрдзрд╛рд░' рдкрд░ред рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ рдРрдк рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ 3-4 рдХрджрдо рдлрд┐рд░ рд╕реЗ рдЬрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдорд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИред

рдореИрдВ 0.24 рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рди рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рднрд▓реЗ рд╣реА <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> рдореЗрд░реЗ AndroidManifest.xml рдореЗрдВ рд╣реИ, рдореБрдЭреЗ рд▓рд╛рд▓ рддреНрд░реБрдЯрд┐ рдмрддрд╛рддреЗ рд╣реБрдП рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ:

"рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ ..."

рдореИрдВ рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕реАрдзреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ - рдпрд╣ 0.25.1 рдореЗрдВ рднреА рд╣реЛрддрд╛ рд╣реИ

@ acapop77 @rossthedevigner рдореИрдВ рднреА рд╕реАрдзреЗ рд╕реИрдорд╕рдВрдЧ S6 рдбрд┐рд╡рд╛рдЗрд╕

@Findiglay рдпрд╣рд╛рдБ рднреАред рдореИрдВрдиреЗ рднреА рдПрдХ рдореИрдиреБрдЕрд▓ .apk рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореБрдЭреЗ рдЕрднреА рднреА рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реБрдИред

рдореИрдВ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореИрдВ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реВрдк рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ android.permission.ACCESS_FINE_LOCATION рд╕рдХреНрд╖рдо рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдХрд┐рд╕реА рдХреЛ рднреА рдирд╛рд╡рд┐рдХ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗред == рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд?

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд▓реЗ рд░рд╣рд╛ рд╣реВрдВред

рдпрд╣рд╛рдВ рд╡рд┐рднрд┐рдиреНрди рдореБрджреНрджреЛрдВ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рджреА рдЬрд╛ рд░рд╣реА рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рднреА enableHighAccuracy рдХреЗ рд╕рд╛рде рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред

рдореБрдЭреЗ Android рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде рдХреЛрдИ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдореИрдВрдиреЗ LocationOodule.java рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рддреЛ LocationOptions boolean highAccuracy = true; рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдпрд╛, рддреЛ рдореЗрд░рд╛ рд╕реНрдерд╛рди рд╕рд╣реА рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд░рд┐рдПрдХреНрдЯ-рдиреЗрдЯрд┐рд╡ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдПрдкреАрдЖрдИ рдореЗрдВ enableHighAccuracy: false рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдорд╛рди рд▓реЗрдирд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рд╣рд╛рдИрдХреНрдпреВрд░реЗрд╕реА рдореЛрдб рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдмрдЧ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди API рдФрд░ LocationModule рдХреЗ рдмреАрдЪ рдкреБрд▓ рдореЗрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рдореИрдВ рднреА рдРрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВрдиреЗ @Findiglay рдЬреИрд╕рд╛ рд╣реА рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рддрдм рдореБрдЭреЗ рдХреЗрд╡рд▓ рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд┐рд▓рд╛ред

рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ рдпрд╣ рдЕрд╕рд▓реА рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╣реЛрддрд╛ рд╣реИ? :(

рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ред рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ RN 0.25.1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдРрдк рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВред

рдореБрдЭреЗ рдпрд╣ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВрдиреЗ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдкреНрд░рдХрдЯ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣реА рдЖрд╡рд╢реНрдпрдХ Android рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝ рджреА рд╣реИрдВред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЯрд╛рдЗрдордЖрдЙрдЯред

рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ 'рдЕрдиреБрдорддрд┐ рджреЗрдВ рдореЙрдХ рд▓реЛрдХреЗрд╢рди' рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдРрдк рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЬреЛ рдЬреАрдкреАрдПрд╕ рдХреЛ рдореЙрдХ рдХрд░рддрд╛ рд╣реИ (рд╕реНрдЯреЛрд░ рдореЗрдВ рдирдХрд▓реА рдЬреАрдкреАрдПрд╕ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ)ред рдХрдо рд╕реЗ рдХрдо рдЬрдм рддрдХ рдпрд╣ рддрдп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╡рд┐рдХрд╛рд╕ рдЕрд╡рд░реБрджреНрдз рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ

рдореИрдВ рд▓реЛрдЧ,
рдореИрдВ рдЙрд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди, рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдХреБрдЫ рдЕрдЬреАрдм рдиреЛрдЯрд┐рд╕ рдХрд┐рдпрд╛ (рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЬреАрдкреАрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ)ред

рдпрджрд┐ рдЖрдк рднреМрддрд┐рдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рдЕрдВрджрд░" рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬреАрдкреАрдПрд╕ рд▓реЛрдХреЗрдЯрд░ рдХреЛ рдмрд╛рд╣рд░реА рдЪреАрдЬреЛрдВ рд╕реЗ рдкрд░реЗрд╢рд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рджреАрд╡рд╛рд░реЗрдВ, рдпрд╛ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░рдг рд╕реЗ рдХрд┐ рдЖрдк рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ "рдЗрдирдбреЛрд░" рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░, рдЖрдо рддреМрд░ рдкрд░, рдЗрд╕реЗ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред ред

рдареАрдХ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рд╕реЗ рдмрд╛рд╣рд░ рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ (рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ)ред

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ: рдпрджрд┐ "рдЕрд╕рдлрд▓ (рдСрдлрд┐рд╕ рдореЗрдВ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рд╡рд┐рдлрд▓, рдЭреВрдареЗ рдХреЗ рд╕рд╛рде рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП" enableHighAccuracy "рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

+1

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ enableHighAccuracy true рдпрд╛ false ред
рдпрд╣ GenyMotion рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ (рд╕реИрдорд╕рдВрдЧ, рдиреЗрдХреНрд╕рд╕, Mi рдкрд░ рдкрд░реАрдХреНрд╖рдг) рдкрд░ рдирд╣реАрдВред
AndroidManifest.xml рдореЗрдВ рд╕рдХреНрд╖рдо рдЕрдиреБрдорддрд┐
рдХреЛрдб:

                navigator.geolocation.getCurrentPosition(
                    (position) => {
                        console.log(position);
                    },
                    (error) => console.log(new Date(), error),
                    {enableHighAccuracy: true, timeout: 10000, maximumAge: 3000}
                );  

enableHighAccuracy рдпрд╛ рддреЛ true рдпрд╛ false рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП getCurrentPosition рд▓рд┐рдП 3 рддрд░реНрдХ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

LGE Nexus 5 (Android 6.0) рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдПрдВрдбреНрд░реЙрдЗрдб 5.1.1 рдФрд░ 4.3 рдкрд░ рдРрд╕реА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рдПрдВрдбреНрд░реЙрдЗрдб 6.0 рдХреЗ рд╕рд╛рде рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдРрд╕реА рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
boolean highAccuracy = false; рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЖрд░рдПрди 0.28.0ред

рд╣реЗ рджреЛрд╕реНрддреЛрдВ, рдореИрдВрдиреЗ рдЕрд╕реНрдерд╛рдпреА рдлрд┐рдХреНрд╕ рдкрд╛рдпрд╛ рд╣реИ - рдпрд╣ рдкреИрдХреЗрдЬ https://github.com/lucasferreira/react-native-android-permissions

рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдкрдбреЗрдЯ рдпрд╛ рдлрд┐рдХреНрд╕? рд╕рдм рдХреБрдЫ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдФрд░ рдкреВрд░реНрд╡ 5.0 рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж рдХреЗрд╡рд▓ рдЯрд╛рдЗрдордЖрдЙрдЯ, рдФрд░ рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рдРрдк рдХреЗ рд▓рд┐рдП рдареАрдХ рд╕реЗ рдЬрд╝рд░реВрд░рдд рд╣реИ!

+1

рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдерд╛рдирдореЛрдб рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреА рд╣реИред рдЬрдм рд╕реНрдерд╛рди рдореЛрдб рдпрд╛ рддреЛ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдЯрд╛рдЗрдо рдЖрдЙрдЯред рдпрд╣ рддрдм рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдмреИрдЯрд░реА рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдХреЗрд╢рди рдореЛрдб рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдореИрдВрдиреЗ рдПрдХ рдкрдВрдЯ рд▓рд┐рдпрд╛ рдФрд░ рддреАрд╕рд░рд╛ рддрд░реНрдХ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рдФрд░ рдЕрдм рдЗрд╕рдХрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

navigator.geolocation.getCurrentPosition( (position) => { console.log(position); }, (error) => console.log(new Date(), error), {enableHighAccuracy: true, timeout: 10000, maximumAge: 3000} //removed this );

рдореИрдВ рдорд╛рди рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ: https://productpains.com/post/react-native/add-android-m-permissions-model-support

рд╕рд╣реА?

рдирд╣реАрдВ, рдЬреЛ рд╕реНрдерд╛рди рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдерд╛

рд╣рд╛рдБ, рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл 3 рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЦреЛрдЬ рдХреА рдереА рдЬреЛ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИред

рд╣рдордиреЗ рдЕрднреА рддрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд░реНрдЬрди 22, рдбрд┐рд╡рд╛рдЗрд╕ рдореЛрдб рдХреЗ рд╕рд╛рде рдпрд╛ рддреЛ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдХрд╛рд░рдг рд╕реНрдерд╛рди рдХреЛ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛, рдЬрдм 3 рддрд░реНрдХ рдХреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Android рд╕рдВрд╕реНрдХрд░рдг 23 рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдПрдХ рд╣реА рдЕрдиреБрднрд╡ рдореЗрд░рд╛ рдкрдХреНрд╖ рд╣реИ, рдХреЗрд╡рд▓ рдПрдВрдбреНрд░реЙрдЗрдб рд╕рдВрд╕реНрдХрд░рдг 23 рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдХреЗрд╡рд▓ 3 рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм enableHighAccuracy false ( true рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ) рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред Android рд╕рдВрд╕реНрдХрд░рдг 22, 21, 20 рдФрд░ 19 рдкрд░ рднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 3 рддрд░реНрдХ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИред рдЙрд╕ рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реА рдПрдХрдорд╛рддреНрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдорд╛рдзрд╛рди рд▓рдЧрддрд╛ рд╣реИред

рдХреЗрд╡рд▓ 3 рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдореБрдЭреЗ "рд▓реЛрдХреЗрд╢рди рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдЯрд╛рдЗрдо рдЖрдЙрдЯ рдЖрдЙрдЯ" рдХрд╛ рдкреЙрдкрдЕрдк рдорд┐рд▓ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛, рддрдм рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рддреБрд░рдВрддред enableHighAccuracy рдХреЛ рдЧрд▓рдд рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛, рдпрд╛ рддреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореЗрд░реЗ рдПрдореБрд▓реЗрдЯрд░ рдкрд░, рд╕реНрдерд╛рди рдХреЗрд╡рд▓ рддрдм рдЙрдкрд▓рдмреНрдз рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдПрдореБрд▓реЗрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЦреЛрд▓рддрд╛ рд╣реВрдВ рдФрд░ рдПрдХ рд╕реНрдерд╛рди рднреЗрдЬрддрд╛ рд╣реВрдВ (рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ)ред

рдХреНрдпрд╛ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

screen shot 2016-08-21 at 6 42 52 pm

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ enableHighAccuracy рд╕реЗ false рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рджреЛрдиреЛрдВ рдПрдореБрд▓реЗрдЯрд░ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░, рдФрд░ EnableHighAccuracy рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдФрд░ рдЧрд▓рдд рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

рдореИрдВ рд╕рд┐рд░реНрдл рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ "рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЛрдИ рд╡рд╕реНрддреБ рдирд╣реАрдВ рд╣реИ ('рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░реЗрдВред

рдореИрдВрдиреЗ рдЬрд╛рдБрдЪ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЕрдЧрд░ (рдирд╛рд╡рд┐рдХ), рдпрд╣ рд╕рдЪ рд╣реИ,
рд▓реЗрдХрд┐рди рдЕрдЧрд░ (рдиреЗрд╡рд┐рдЧреЗрдЯрд░.рдУрдЧреНрд▓реЛрдХреЗрд╢рди) рдЭреВрдареЗ рд▓реМрдЯ рдЖрдПред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб 5.1 рд╡рдирдкреНрд▓рд╕ рд╡рди рдкрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХрд░ рд░рд╣рд╛ рд╣реИред рдбреЗрд╡рд▓рдкрд░ рдореЛрдб рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛, AndroidManifest рдЕрдиреБрдорддрд┐рдпреЛрдВ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ / рдмрдВрдж, рдирдХрд▓реА рд╕реНрдерд╛рдиред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдореБрдЭреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдРрдк рд╣рдЯрд╛рдиреЗ рдФрд░ рдореЗрд░реЗ рдореИрдХ рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭрд╕реЗ рд╕реНрдерд╛рди рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдХрд╣рддрд╛ рдерд╛ред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рдбрд┐рдмрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рд░рд┐рдПрдХреНрдЯ рджрд╛рдпрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЙрд╕ рдЪреАрдЬ рдореЗрдВ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ рдЬреЛ рдХреНрд░реЛрдо рд░рд┐рдореЛрдЯ рдбреАрдмрдЧрд░ рдХреЛ рдЕрдВрджрд░-рдмрд╛рд╣рд░ рд╕реНрдХреНрд░реВ рдХрд░рддреА рд╣реИрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рдорд╛рди рдореБрджреНрджрд╛ рд╣реИ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдРрдк рд╣рдореЗрд╢рд╛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рди рдХрд░реЗ, рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ рдЕрдиреНрдп рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдРрдк рдареАрдХ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддреЛ рдЖрд░рдПрди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЦрд░рд╛рдм рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рд╣реЛрддрд╛ рд╣реИред
RN 0.32 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ Im, рд▓реЗрдХрд┐рди рдореИрдВ рд╣рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛, рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ RN рдореЗрдВ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдмрд╣реБрдд рдЕрдЬреАрдм рдФрд░ рдЦрд░рд╛рдм (рдХрдо рд╕реЗ рдХрдо Android рдкрд░)

рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛, рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдгред

рдЗрд╕рдореЗрдВ рднрд╛рдЧрдирд╛ рдФрд░ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ: /

рдореИрдВ Android 6.0 рдкрд░ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБред

+1

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд░реНрдЬрди рдкрд░ = (23) Android M рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 3 рдЬреА рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдерд╛, рдФрд░ рдКрдкрд░ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдп (https://github.com/lucasferreira/react-native-android-permissions) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред

рдмрд╕ рдзрдмреНрдмреЗрджрд╛рд░ рдЕрдиреБрдорддрд┐рдпрд╛рдБред рдерд╛рдпрд░рд╛рдЗрдб рдХреЛ рдЕрдм RN рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рддреЛ рдпрд╣ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЕрдЧрд░ Android рдкрд░ = = 23

https://facebook.github.io/react-native/docs/permissionsandroid.html

рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдореЗрд░реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдВрдбреНрд░реЙрдЗрдб 5.1.1 рд╣реИред Android рдХреЗ рдЗрд╕ vред рдкрд░, рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХреЛ рдареАрдХ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдирд╣реАрдВ?

23 6.0 рдкрд░ рд╣реИред рдореИрдВрдиреЗ рдпрд╣ рднреА рдкрд╛рдпрд╛ рдХрд┐ рдореБрдЭреЗ рд╣рд░ рдЪреАрдЬ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереАред

рдореИрдВ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред RN рдХреЗ рдирдП рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (рдорд╛рдЗрди 0.32.1 рд╣реИ) рдореЗрдВ MainApplication.java (MainActivity.java рдХреЗ рдЕрд▓рд╛рд╡рд╛) рдирд╛рдордХ рдПрдХ рдлрд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдореВрд▓ рдореИрдкрдмреЙрдХреНрд╕ GL рдбреЙрдХреНрд╕ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ ReactNativeMapboxGLPackage рдХреЛ MainActivity.java рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЗрд╕реЗ MainApplication.java рдореЗрдВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗ:

MainApplication.java

`ред ред ред

<strong i="8">@Override</strong>
protected List<ReactPackage> getPackages() {
  return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
      new ReactNativeMapboxGLPackage()
  );
}

};
`

рдФрд░ MainActivity.java рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╣реА рд░рд╣реЗрдЧрд╛ред

рдореЗрд░рд╛ Android рд╕рдВрд╕реНрдХрд░рдг 23 рд╣реИ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрднреА рднреА рдкреНрд░рдХрдЯ xml рд╕реЗ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЬреАрдкреАрдПрд╕ рд╕рдХреНрд░рд┐рдп рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдРрдк рд▓реЛрдХреЗрд╢рди рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реВрдВ, рддреЛ рд▓реЛрдХреЗрд╢рди рд░рд┐рдЯрд░реНрди: error: No available location provider.

рдореИрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЬреАрдкреАрдПрд╕ рд▓реЛрдХреЗрд╢рди рдкрд░ рдХреИрд╕реЗ рд╕рдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдпрд╣ рдкрд╛рдЧрд▓рдкрди рд╣реИ =

рдореЗрд░реЗ рдкрд╛рд╕ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рд╣рдлреНрддреЛрдВ рд╕реЗ рдореЗрд░реЗ Genymotion Android рдПрдореБрд▓реЗрдЯрд░ рдкрд░ getCurrentPosition рдХрд╛рдо рдерд╛, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рд╕реНрдерд╛рди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Genymotion рдХреЗ GPS рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдПрдореБрд▓реЗрдЯрд░ рдкрд░ Google рдорд╛рдирдЪрд┐рддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ Google рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрд░реЗ рд╕реНрдерд╛рди рдХреЛ рдареАрдХ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдорддрд┐рдпрд╛рдВ рд╣реИрдВ, рдФрд░ рдореИрдВ @sattaman рдЬреИрд╕реЗ PermissionsAndroid рдореЙрдбреНрдпреВрд▓ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧреИрд░-рдирд┐рд░реНрдзрд╛рд░рдХ рд╣реИ, рдЗрд╕рдореЗрдВ рд╡рд╣ рдПрдХ рджрд┐рди рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдЧрд▓реЗ рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореИрдВ рдЖрд░рдПрди реж.рейрез рдкрд░ рд╣реВрдВ рдФрд░ рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ! рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕, рдиреЗрдХреНрд╕рд╕ 5 рдПрдХреНрд╕, рдПрдВрдбреНрд░реЙрдЗрдб 6ред

рдореБрдЭреЗ RN 0.34.1 рдкрд░ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╣рдЯрд╛рдХрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП enableHighAccuracy рд╕реЗрдЯ рди рдХрд░реЗрдВ

рдЖрд░рдПрди 0.32 рдкрд░ рдореЗрд░реЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛, рдПрдВрдбреНрд░реЙрдЗрдб 22 рдФрд░ 23 рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХреА рдЧрдИ,

рд╕рддреНрдп рдпрд╛ рдЕрд╕рддреНрдп рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдорддрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рд░рдЧрд░ рдирд╣реАрдВ рд╣реИ
рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдХрд╛рд░рдг рддрддреНрдХрд╛рд▓ "рд╕реНрдерд╛рди рдЕрдиреБрд░реЛрдз рдЯрд╛рдЗрдордЖрдЙрдЯ" рд╣реЛрддрд╛ рд╣реИ
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореЗрд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдЪрд▓ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдордп рдмрд╛рдж рдЯреВрдЯ рдЬрд╛рдПрдЧрд╛,

рдЕрдм, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕реНрдерд╛рди рдХреЛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:
https://github.com/mauron85/react-native-background-geolocation

@acondense рдЬрд╣рд╛рдБ рдЖрдк рдкреГрд╖реНрдарднреВрдорд┐-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдерд╛рди рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ

рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб 23 рдФрд░ 24 рдХреЗ рд╕рд╛рде рдЖрд░рдПрди 0.35 рдкрд░ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдорд┐рд▓рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб 22 рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб 6.0 рд░рдирдЯрд╛рдЗрдо рдЕрдиреБрдорддрд┐ рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
http://stackoverflow.com/questions/32224534/access-fine-location-permission-error-emulator-only

рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
https://github.com/yonahforst/react-native-permissions

рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рддрдп рд╣реЛ рдЧрдпрд╛ fixed fixed fixed

рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╣рдЯрд╛рдХрд░ рдХрд╛рдо рдХрд┐рдпрд╛ worked

рдпрд╣ рд╢реБрд░реВ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдерд╛ рдХрд┐ рдХрд┐рд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рд░ рдХреЛрдИ рдмрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╡рд┐рдзрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╛ рд╡рд┐рдХрд▓реНрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ред

рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ getCurrentPosition рдкрджреНрдзрддрд┐ рдХрд╛ рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИ, рдЬреЛ рдЕрдВрдд рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

navigator.geolocation.getCurrentPosition(
    (position) => {
       ...
    },
    (error) => alert(error.message)
)

рдЕрдВрдд рдореЗрдВ рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖрдпрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ):

export const detectCurrentLocation = (successCallback, errorCallback) => {
    let navigatorOptions = {}
    if (Platform.OS === 'android' && Platform.Version === 23) {
        navigatorOptions = {
            enableHighAccuracy: false,
            timeout: 10000,
            maximumAge: 0
        }
    }

    navigator.geolocation.getCurrentPosition(
        position => successCallback(detectedLocation),
        error => errorCallback(error),
        navigatorOptions
    )
}

рдпрд╣ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдПрдВрдбреНрд░реЙрдЗрдб 21, 22 рдФрд░ 23 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛), рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдЗрдб 23 рдХреЗ рд▓рд┐рдП рдпрд╣ рдЧрдВрднреАрд░ рд░реВрдк рд╕реЗ рдзреАрдорд╛ рд╣реИ: 5 - 10 рд╕реЗрдХрдВрдбред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдореЗрдВ рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ LocationServices.FusedLocationApi рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ (рдореВрд▓ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рдХреЛрдб рдореЗрдВ)?

enableHighAccuracy: true Android рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ

рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб 6 рдкрд░ рд╕реНрдерд╛рди рдХреА рдЕрдиреБрдорддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

requestLocationPermission = async () => {
    try {
      const granted = await PermissionsAndroid.requestPermission(
        PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
        {
          'title': 'Enable location',
          'message': 'Location is good \o/',
        },
      );

      if (granted) {
        console.log('You can use the location');
        this.getLocation();
      } else {
        console.log('Location permission denied');
      }
    } catch (err) {
      console.warn(err);
    }
  };

@sibelius рдпрд╣ Location request timed out рддреНрд░реБрдЯрд┐ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ?

рдореЗрд░реЗ рд╕реНрдирд┐рдкреЗрдЯ рдФрд░ рдЗрд╕ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ https://github.com/facebook/react-native/issues/7495#issuecomment -259753488

рдХреНрдпрд╛ рдЕрдм рднреА рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рддрдп рдирд╣реАрдВ рд╣реИ? рдореИрдВрдиреЗ рдЗрд╕ рдереНрд░реЗрдб рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдореЗрд░реЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рд╕рдордп рддреНрд░реБрдЯрд┐ рд╣реИ, рдпрд╛ рддреЛ рддреБрд░рдВрдд рдпрд╛ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рджред

рдпрд╣рд╛рдБ рднреА, @sattaman рдХрдореЗрдВрдЯ рдиреЗ рдЗрд╕реЗ рдореЗрд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ (рдмреИрдЯрд░реА рд╕реЗрд╡рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд▓реЛрдХреЗрд╢рди рдореЛрдб рд╕реЗрдЯ рдХрд░рдирд╛) рдХреЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдк рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдмрддрд╛рдпрд╛ рдЬрд╛рдП!

рдпрд╛ рддреЛ enableHighAccuracy рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдпрд╛ рдореЗрд░реЗ рд▓рд┐рдП рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛рдо рдХрд░рдирд╛ред рд╕реНрдерд╛рди рдЕрднреА рднреА рдмрд╣реБрдд рд╕рдЯреАрдХ рджрд┐рдЦрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред
IOS рдкрд░ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ (рдЖрд░рдПрди 0.39)

рдЖрд░рдПрди 0.40 рд╡рд╣реА рдЕрдВрдХред рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рдХрд╛рд▓рдХрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред
(рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдирд╣реАрдВ рдорд┐рд▓рддреА рд╣реИ)

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛, 3 рдбреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдореБрдЭреЗ enableHighAccuracy: true рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕реНрдерд╛рди рдореЛрдб рд╣рд╛рдИ рдПрдХреНрдпреВрд░реЗрд╕реА рдкрд░ рд╕реЗрдЯ рд╣реЛред рд╡рд░рдирд╛ рдХрдИ рдмрд╛рд░ рдмрд╛рд╣рд░ред рдореИрдВ рдХрд┐рд╕реА рднреА рдкрд░рд┐рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдмреИрдЯрд░реА рдХреА рдмрдЪрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдореИрдВ рдХрд┐рд╕реА рднреА рд╡рд┐рдХрд▓реНрдк рдХреЛ рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ред рдпрджрд┐ рдЖрдк рдореЗрд░реЗ рд╕рд╛рде рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрдШрд░реНрд╖ рдХрд░ рд░рд╣реЗ рд╣реИрдВ - рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЖрдЬрд╝рдорд╛рдПрдБред рдореИрдВрдиреЗ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ C (Android 7.1) рдФрд░ рдиреЛрдЯ 4 (Android 6.0.1) рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛

рдЖрдИрдУрдПрд╕ рдкрд░ рдореБрдЭреЗ рдЯреНрд░реВ рдХреЛ рд╣рд╛рдИ рдПрдХреНрдпреВрд░реЗрд╕реА рд╕реЗрдЯ рдХрд░рдиреА рдереАред рдЖрдк рдХрд▓реНрдкрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдореЗрд░реЗ рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рд╕рдорд╛рд░реЛрд╣ рдорд┐рд▓ ...

рдореИрдВ RN 0.40 рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ (Nexus 5) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдХреБрдЫ рднреА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

// рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ:

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ navigator.geolocation.watchPosition рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рддрдм рддрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ navigator.geolocation.getCurrentPosition рддрдХ рд╕рдорд╛рдзрд╛рди рди рд╣реЛ рдЬрд╛рдПред

рдЕрднреА рдХреЗ рд▓рд┐рдП, рдореИрдВ рдПрдХ рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рд▓рд┐рдЦреВрдВрдЧрд╛ рдФрд░ рдореВрд▓ рдПрдкреАрдЖрдИ рдХреА рд╕реАрдзреЗ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдЖрд░рдПрди рдХрд╛ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдПрдкреАрдЖрдИ рдЕрдм рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд┐рд░ рд▓рдЧрддрд╛ рд╣реИред

рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ, рдореИрдВрдиреЗ рдХреБрдЫ рдирд┐рдпрдореЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИред

  1. рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ - рд╕реНрдерд╛рди рдХреЗрд╡рд▓ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИ, рдЖрдкрдХреЛ getCurrentPosition рдХреЗ рд▓рд┐рдП enableHighAccuracy: true рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
  2. рд╕реЗрдЯрд┐рдВрдЧ - рд╕реНрдерд╛рди рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ getCurrentPosition рдХреЗ рд▓рд┐рдП enableHighAccuracy: true рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рдЗрди рджреЛ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдЪреАрдЬреЗрдВ рдареАрдХ рд╣реИрдВ

@ рдХрд┐рдореЛрдЪрдЧ рдЖрдкрдХрд╛ рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрдЕрдк рдХреНрдпрд╛ рд╣реИ?

рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ, рдХреЗрд╡рд▓ рд╕реНрдерд╛рди рдкрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рдкрд░ рд╣рд░ рдмрд╛рд░ рд╕рдордп рдкрд░ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓реЗрдЧрд╛, рднрд▓реЗ рд╣реА рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди enableHighAccuracy рд╣реЛред

рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдореБрдЭреЗ рдХреЛрдИ рднреА рд╡реИрдз рд╕реНрдерд╛рди рдорд┐рд▓реЗрдЧрд╛, рдЪрд╛рд╣реЗ рд╡рд╣ enableHighAccuracy рд▓рд┐рдП рд╕реЗрдЯ рд╣реЛред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХреЗрд╡рд▓ рдПрдХ рддрд╛рдЬрд╛ рд╕реНрдерд╛рди рд▓рд╛рдПрдЧрд╛ рдпрджрд┐ рдореИрдВ enableHighAccuracy: false рд╕рдЯреАрдХрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ enableHighAccuracy: true рдпрд╣ рдПрдХ рдХреИрд╢реНрдб рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдПрдХ рддрд╛рдЬрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред

рдпрд╣ рд░рд┐рдПрдХреНрдЯ рдиреЗрдЯрд┐рд╡ 0.40 рдкрд░ рд╣реИ, рдиреЗрдХреНрд╕рд╕ 5 рдПрдХреНрд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдПрдВрдбреНрд░реЙрдпрдб 7.1.1 рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ

@kulmajaba рдХреБрдЫ рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдк рдореВрд▓ рдирд┐рд╡рд╛рд╕реА 0.40, рдиреЗрдХреНрд╕рд╕ 5X рдкрд░ рдкрд░реАрдХреНрд╖рдг рдПрдВрдбреНрд░реЙрдпрдб 7.1.1 рдЪрд▓ рд░рд╣рд╛ рд╣реИ
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдирд╣реАрдВ рд╣реИ

рдпрджрд┐ рдЖрдк рдПрдореБрд▓реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ,
рдХреНрдпрд╛ рдЖрдк рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рджрд╛рдИрдВ рдУрд░ 'рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд┐рдпрдВрддреНрд░рдг' рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬреАрдкреАрдПрд╕ рдбреЗрдЯрд╛ рднреЗрдЬрддреЗ рд╣реИрдВ?
(рдмрдЯрди)

@kimochg рдареАрдХ рд╣реИред рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореБрдЭреЗ рдПрдореБрд▓реЗрдЯрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@Ascendance @ рдбреИрдирд┐рдпрд▓-ltw рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рд╕рднреА рд╕рдорд╛рдзрд╛рди рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдФрд░ рднрдпрднреАрдд рдирд╛рд╡рд┐рдХ рд╣рд┐рд▓рд╛ рдирд╣реАрдВ рд╕рдХрддрд╛ред рддрдм рдореИрдВрдиреЗ navigator рд▓реЙрдЧ рдХрд┐рдпрд╛ред

рдпрд╣рд╛рдБ рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИ:

ProxyComponent
_attachGesture
_cleanScenesPastIndex
_clearTransformations
_completeTransition
_deltaForGestureAction
_detachGesture
_disableScene
_disableTVEventHandler
_doesGestureOverswipe
_eligibleGestures
...

рддрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдпрд╣ рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдШрдЯрдХ рд╕реЗ рдЖ рд░рд╣рд╛ рдерд╛ред рдорд╛рд░реНрдЧреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░рддреЗ рд╕рдордп рдпрд╣ (route, navigator) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ, рдирд╛рд╡рд┐рдХ рдЪрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рд▓реЙрдЧрд┐рдВрдЧ рдХрд░рдиреЗ рдкрд░ рдЙрдкрдЬ:

WorkerNavigator
appCodeName
appName
appVersion
geolocation (...)
get geolocation
getValue()
set geolocation
setValue(newValue)
hardwareConcurrency

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИ - рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдПрд╣рд╕рд╛рд╕ рд╣реЛрдиреЗ рдореЗрдВ рдПрдХ рджреБрдЦрдж рд╕рдордп рд▓рдЧрд╛ рдХрд┐ рдореБрджреНрджрд╛ рдХреНрдпрд╛ рдерд╛ред : /

@kulmajaba maximumAge рдкреИрд░рд╛рдореАрдЯрд░ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдХреИрд╢рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ред рдЗрд╕реЗ 0 рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рдирдпрд╛ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реЛрдЧрд╛ред

рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЬреВрдЭ рд░рд╣реЗ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдкрдврд╝рд╛ рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рд╡рд╛рд▓реЗ рдЬреАрдкреАрдПрд╕ рдХреЙрд▓ рдореЗрдВ рдПрдХ рдорд┐рдирдЯ (рдКрдкрд░ рдХреА рдУрд░) рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЬрдм рдШрд░ рдХреЗ рдЕрдВрджрд░ - рдЬреИрд╕рд╛ рдХрд┐ @RoBYCoNTe рдиреЗ рдКрдкрд░ рдмрддрд╛рдпрд╛ рд╣реИред

рдЧреЗрдЯ рдЧреЛ рд╕реЗ рдПрдХ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреЙрд▓ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдкрд╣рд▓реЗ рдПрдХ рдХрдо рд╕рдЯреАрдХрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдПрдХ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреЙрд▓ рд╢реБрд░реВ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реЛрдЧрд╛ред рдпрд╣ рдЖрдкрдХреА рдЬрд╝рд░реВрд░рддреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд┐рдирдЯ + рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рдирд╛ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ :)

рдпрд╣ рднреА рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рдЖрд░рдПрди рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдХрд▓реНрдкрдирд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЖрдк рд╡реЗрдм рдкрд░ рдЗрд╕рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдЙрддреНрддрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ astlyly рдирд╛рдо http://stackoverflow.com/questions/3752383/geolocation-is-so-slow-what-im- рдХрд░-рдЧрд▓рдд

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдареЛрд╕ рдЙрдкрд╛рдп рд╣реИ? рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреА рдЕрдкрдиреЗ рдРрдк рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдкрдВрдЬреАрдХрд░рдг рдХреЗ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЕрдкрдирд╛ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ рдХреБрдЫ Android рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╣реЛ рд░рд╣реА рд╣реИ, рдФрд░ рдореИрдВ 3rd рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдЙрддреНрддреЗрдЬрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЛрдЧ рдХреЗрд╡рд▓ рдореЗрд░реЗ рдРрдк 1 рд╕реНрдЯрд╛рд░ рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджреЗ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди, рд╣рд╛рд╣рд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред >ред>

@booboothefool рд╡рд┐рдХрд▓реНрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдЪреНрдЪрддрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
рдЕрд╕рддреНрдпред рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрд╣реБрдд рддреЗрдЬ рд╣реИрдВред

рд╕реЛрдо, 20 рдлрд░рд╡рд░реА, 2017 рдХреЛ, 9:50 рдмрдЬреЗ booboothefool рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдареЛрд╕ рдЙрдкрд╛рдп рд╣реИ? рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреА рдореЗрд░реЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ
рдкрдВрдЬреАрдХрд░рдг рдХреЗ рднрд╛рдЧ рдХреЗ рдХрд╛рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрдирдХреЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХреЛ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдореБрджреНрджрд╛ рдХреЗрд╡рд▓ рдХреБрдЫ Android рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдореИрдВ рдирд╣реАрдВ рд╣реВрдВ
3 рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред рдореБрдЭреЗ рдЙрддреНрддреЗрдЬрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/react-native/issues/7495#issuecomment-281142941 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ADJE_BC-osVA45bcpejEI_paDEBykBs1ks5redJtgaJpZM4Ibete
ред

@greyvugrin рдареАрдХ рд╣реИ рдореИрдВ рдПрдХ рд╢реЙрдЯ рджреВрдВрдЧрд╛ред рдЖрдзреЗ рд▓реЛрдЧ рдпрд╣ рдХреНрдпреЛрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ "рдЖрдкрдХреЛ 3 рдбреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдмрд╕ рдЭреВрдареА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧ?" рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣рд░ рдХреЛрдИ рдХреБрдЫ рдЕрд▓рдЧ рдХрд╣ рд░рд╣рд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднреА: https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреИрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред enableHighAccuracy: false timeout: Infinity , рддреЛ рдХреНрдпрд╛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЕрдЧрд░ рдореИрдВ 3 рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ?

@booboothefool рдЖрдк рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рднреНрд░рдорд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╣реА рд╣реИрдВред рдореИрдВ рдЬреЛ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рдЙрд╕рдореЗрдВ рд╕реЗ рдЬреЛ рд▓реЛрдЧ рд╡рд┐рдХрд▓реНрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЫреЛрдбрд╝ рд░рд╣реЗ рд╣реИрдВ, рдЙрдирдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдХреБрдЫ рдФрд░ рдЪреАрдЬреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рддреЛ рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рдкрд░ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред
GetCurrentPosition рдХреЗ рд▓рд┐рдП 3 рддрд░реНрдХ рдХреЛ рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рддреЛ рдореБрджреНрджрд╛ timeout рд╕рд╛рде рд░рд╣рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдореЗрдВ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рд░рдХ рд╣реИрдВ, рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рд╕реЗ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗрдЧреАред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдЯрд╛рдП рдЧрдП рд╡рд┐рдХрд▓реНрдк рдереЗ рдФрд░ рдЖрд░рдПрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡реЗрдм рдХреЗ рд╕рдорд╛рди рд╣реА рдкреИрд░рд╛рдореЗрдЯреНрд╕ рдХреЛ рдбрд┐рдлреЙрд▓реНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЪреАрдЬреЗрдВ рдареАрдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реЛ рд░рд╣реА рд╣реИрдВ, рддреЛ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рдкрд╛рд╕ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐рдпрд╛рдБ рд╕рдХреНрд╖рдо рд╣реИрдВ (рдФрд░ рдЖрдк рдЕрдкрдиреЗ рдРрдк рдореЗрдВ рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣реЗ рд╣реИрдВ)ред

рд╣реЗ @greyvugrin ,

рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрдбрд╝реА рдЯрд┐рдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рдерд╛ред Https://github.com/lucasferreira/react-native-android-permissions рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (рдореИрдВ https://facebook.github.io/react-native/docs/permissionsandroid.html рдкрд░ рдЗрд╕ enableHighAccuracy: false рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╣реА рдЗрд╕ API рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрддрд╛ рд╣реВрдВред timeout , рдЕрдм рд╕рднреА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдРрдк Google Play Store рдкрд░ 1 рд╕реНрдЯрд╛рд░ рд╕реЗ рдЧрдпрд╛ рдФрд░ рд╣рд░ рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ 3.6 рд╕рд┐рддрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЯреНрд░реЗрд╢ рдХрд┐рдпрд╛, рд╣рд╛рд╣рд╛рд╣рд╛! ЁЯСН

@booboothefool рдРрд╕реА рдмрдбрд╝реА рдЦреБрд╢рдЦрдмрд░реА рд╣реИ, рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ !!!

рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рд╕реБрдЭрд╛рдП рдЧрдП рд╕рднреА рддрд░реАрдХреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред GetCurrentPosition рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди Android рдкрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЯрд╛рдЗрдордЖрдЙрдЯред watchPosition рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ UX рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдореБрдЭреЗ рдЙрдирдХреА рдмреИрдЯрд░реА рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рдкрд░ рдЬреАрдкреАрдПрд╕ рд░рдЦрдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА:

  • enableHighAccuracy: рдЕрд╕рддреНрдп
  • рд╡рд┐рдХрд▓реНрдк рддрд░реНрдХ рдирд┐рдХрд╛рд▓рдирд╛
  • рдЕрдиреБрдорддрд┐ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рдФрд░ Android рдХреЗ рд▓рд┐рдП рдкреВрдЫрдирд╛ = = 23
  • рдкреНрд░рдХрдЯ рдореЗрдВ рдЬреБрд░реНрдорд╛рдирд╛ рдФрд░ рд▓рд╛рдЧрдд рджреЛрдиреЛрдВред

рдХреЛрдИ рднреА getCurrentPosition рд▓рд┐рдП рд╕рдордп-рд╕рдордп рдкрд░ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рд╣реИ рдЬрдм Android рд╕реНрдЯреВрдбрд┐рдпреЛ рдПрдореБрд▓реЗрдЯрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдореМрдХрд╛ рдорд┐рд▓рдиреЗ рдкрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ / рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдмреАрдЪ ... рдЖрдк рдПрдХ рдмрдбрд╝реА GPX рдЯреНрд░реЗрд▓ рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ "1x" рдЧрддрд┐ рд╕реЗ рд╡рд╛рдкрд╕ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рд╕реЗ рдПрдХ GPX рдкрдХрдбрд╝рд╛ ... ExpertGPS.com -> ca-trails.gpx
... рдпрд╣ рдлрд╝рд╛рдЗрд▓ "5x" рдЧрддрд┐ рдкрд░ рд▓рдЧрднрдЧ 8 рдорд┐рдирдЯ рддрдХ рдЪрд▓реА, рдЗрд╕рд▓рд┐рдП "1x" рдЧрддрд┐ рдкрд░ рдпрд╣ рд▓рдЧрднрдЧ 40 рдорд┐рдирдЯ рддрдХ рдЪрд▓рддреА рд╣реИред

рдЗрд╕реЗ [(] рдПрдХ рдФрд░ рд╕рдВрднрд╡рддрдГ GPX рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВ ... [] рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╡рд┐рдХрд▓реНрдк-> рд╕реНрдерд╛рди (рдиреАрдЪреЗ рджрд╛рдИрдВ рдУрд░ рд▓реЛрдб GPS / KML рдмрдЯрди), рдкреНрд▓реЗ рдмрдЯрди рджрдмрд╛рдПрдВ, рдлрд┐рд░ рд╡рд┐рдВрдбреЛ рдмрдВрдж рдХрд░реЗрдВ ... рдпрд╣ рдЦреЗрд▓рддрд╛ рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рдпрд╣ рдЕрдВрдд рддрдХ рд╣рд┐рдЯ рди рд╣реЛ рдЬрд╛рдПред рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИ рдХреЛрдИ рдСрдЯреЛ-рд░рд┐рдкреАрдЯ рдирд╣реАрдВ рд╣реИ - рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕реБрд╡рд┐рдзрд╛-рдЕрдиреБрд░реЛрдзред :-)

рдпрд╣ рд╕рдЪ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдХ рд╣реА рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред
getCurrentPosition рд╣рдореЗрд╢рд╛ рд╕рдордп рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛрддрд╛ рд╣реИред рдШрдбрд╝реА рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдкрд░реАрдХреНрд╖рдг Z5, рдиреЗрдХреНрд╕рд╕ 5X
рдкрд┐рдХреНрд╕реЗрд▓, рдЖрд░рдВрднрд┐рдХ рдХреЙрд▓ рдкрд░ рдСрд▓ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

Sat, 4 Mar 2017, 19:49 Deen Foxx рдкрд░, рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдпрд╣ рд╕рд┐рд░реНрдл рдХреБрдЫ рд╣реИ рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдПрдореБрд▓реЗрдЯрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ
рдореМрдХрд╛ рдорд┐рд▓рдиреЗ рдкрд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрд╕реЗ рдареАрдХ рдХрд░рдирд╛ / рд▓рд╛рдЧреВ рдХрд░рдирд╛ред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдмреАрдЪ ... рдЖрдк рдПрдХ рдмрдбрд╝реА GPX рдЯреНрд░реЗрд▓ рдлрд╝рд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╛рдиреЗ рджреЗрдВ
рдпрд╣ "1x" рдЧрддрд┐ рд╕реЗ рд╡рд╛рдкрд╕ рдЦреЗрд▓рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рд╕реЗ рдПрдХ GPX рдкрдХрдбрд╝рд╛ ... ExpertGPS.com ->
ca-trails.gpx
https://www.expertgps.com/data/downloading.asp?file=ca/ca-trails.gpx
... рдпрд╣ рдлрд╝рд╛рдЗрд▓ "5x" рдЧрддрд┐ рдкрд░ рд▓рдЧрднрдЧ 8 рдорд┐рдирдЯ рддрдХ рдЪрд▓реА, рдЗрд╕рд▓рд┐рдП "1x" рдЧрддрд┐ рдкрд░
SHOULD рд▓рдЧрднрдЧ 40 рдорд┐рдирдЯ рддрдХ рд░рд╣рддрд╛ рд╣реИред

рдЗрд╕реЗ [...] рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдореЗрдВ (рдпрд╛ рд╕рдВрднрд╡рддрдГ рдПрдХ рдФрд░ рдмрдбрд╝реА GPX рдлрд╝рд╛рдЗрд▓) рд▓реЛрдб рдХрд░реЗрдВ
рд╡рд┐рдХрд▓реНрдк-> рд╕реНрдерд╛рди (рдиреАрдЪреЗ-рджрд╛рдИрдВ рдУрд░ GPS / KML рдмрдЯрди рд▓реЛрдб рдХрд░реЗрдВ), рдирд╛рдЯрдХ рдХреЛ рд╣рд┐рдЯ рдХрд░реЗрдВ
рдмрдЯрди, рдлрд┐рд░ рдЦрд┐рдбрд╝рдХреА рдмрдВрдж рдХрд░реЗрдВ ... рдпрд╣ рддрдм рддрдХ рдЦреЗрд▓рддрд╛ рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╣рд┐рдЯ рди рд╣реЛ рдЬрд╛рдП
рд╕рдорд╛рдкреНрддред рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдСрдЯреЛ-рд░рд┐рдкреАрдЯ рдирд╣реАрдВ рд╣реИ - рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕реБрд╡рд┐рдзрд╛-рдЕрдиреБрд░реЛрдз
рд╕реНрдЯреВрдбрд┐рдпреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ред :-)

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/react-native/issues/7495#issuecomment-284172310 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AACQ6AoZYXJ02DCmevcLmmF3tuOdg_SEks5ribJHgaJpZM4Ibete
ред

рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╣рдЯрд╛рдХрд░ getCurrentLocation рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ред

{
   timeout: 20000,
    maximumAge: 1000
}

рдореИрдВрдиреЗ рд╕рд┐рд░реНрдл рддреАрди-рдкрд╛рд╕ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХреЛрдбрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдУрд╡рд░рдХрд┐рд▓ рдХрд╛ рдПрдХ рд╕рд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдУрд╣ред рдпрд╣рд╛рдБ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде) рд╣реИ ...

class FindNearMe extends Component {

  constructor(props) {
    super(props);

    this.state = {
      prevLatitude: 0.0,
      prevLongitude: 0.0,
      gotLocation: false,
      locating: false,
      loading: false
    };
  }

  handleGeolocationSuccess = (position) => {

    // Get a response, say we are done locating, even if it is still looking for a fine result.
    this.setState({ locating: false });

    // If we previously failed, we can clear the error if it just happens to still be visible.
    if (!this.state.gotLocation) {
      this.props.navigator.hideLocalAlert();  // Hide possibly open alert.
      this.setState({ gotLocation: true });  // Remove the previous failure state.
    }

    // Only proceed if there is an actual change in location.
    if (this.state.prevLatitude != position.coords.latitude ||
        this.state.prevLongitude != position.coords.longitude) {

      // Overwrite the old location with the new location.
      this.setState({
        prevLatitude: position.coords.latitude,
        prevLongitude: position.coords.longitude,
        loading: true // Only needed if you plan to get content from server.
      });

      // ... DO SOMETHING WITH THE UPDATED LOCATION ...
      // If you used a callback function (success or failure) be sure to include this...
      this.setState({ loading: false });
 };

  // This first, RoughError, means the "enableHighAccuracy: false" time-out occurred.
  handleGeolocationRoughError = (error) => {
    this.props.navigator.showLocalAlert('Attempting to pinpoint your location...', config.errorStyles);
    // Invalidate our current location
    this.setState({ gotLocation: false });
  };

  // This second, FineError, means the "enableHighAccuracy: true" time-out occurred.
  handleGeolocationFineError = (error) => {
    // If we got Rough location, I'm ignoring this. But, if neither rough nor fine succeeded...
    if (!this.state.gotLocation) {
      // ...try once more without the options.
      navigator.geolocation.getCurrentPosition(
        this.handleGeolocationSuccess,
        this.handleGeolocationFinalError
      );
    }
  };

  // This last, FinalError, means nothing worked and we're giving up.
  handleGeolocationFinalError = (error) => {
    if (!this.state.gotLocation) {
      this.props.navigator.showLocalAlert('Could not determine your location, sorry!', config.errorStyles);

      // Let our app know that we are not trying anymore.
      this.setState({ locating: false });
    }
  };

  goToNearMe = () => {
      // Track when we are attempting to get a location update.
      this.setState({ locating: true });

      // Try to get the rough location quickly.
      navigator.geolocation.getCurrentPosition(
        this.handleGeolocationSuccess,
        this.handleGeolocationRoughError,
        {
          enableHighAccuracy: false,
          timeout: 500,  // I have this set for half-second before popping up the alert.
          maximumAge: 0
        }
      );

      // But, also, simultaneously try to get the fine location.
      navigator.geolocation.getCurrentPosition(
        this.handleGeolocationSuccess,
        this.handleGeolocationFineError,
        {
          enableHighAccuracy: true,
          timeout: 7500,  // I have this set for 7.5 seconds, about the length of the first alert's visibility.
          maximumAge: 0
        }
      );
  };

  render() {
    return (
        <Container>
          <LocateMeButton
              onPress={this.goToNearMe}
              loading={this.state.loading || this.state.locating}
          />
          <Header>
            Use Current Location
          </Header>
        </Container>
    );
  }
}

export default FindNearMe;

рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рджреЗрд╡ рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ, рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдирд╣реАрдВред рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛ред

рдореИрдВ рдмрд╕ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ ... рдпрд╣ рд╢рд╛рдпрдж рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рджреЛ-рдкрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЕрдЧрд░ рдЖрдкрдХрд╛ рд░рдлрддрд╛рд░ рдХреЙрд▓ рд╕рд┐рд░реНрдл рд╡рд┐рдХрд▓реНрдк-рдХрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ ...

  goToNearMe = () => {
      // Track when we are attempting to get a location update.
      this.setState({ locating: true });

      // Try to get the rough location quickly.
      navigator.geolocation.getCurrentPosition(
        this.handleGeolocationSuccess,
        this.handleGeolocationRoughError,
// Just leave this off entirely (but default timeout is Infinity, so you'd never get the first alert!)...
//        {
//          enableHighAccuracy: false,
//          timeout: 500,  // I have this set for half-second before popping up the alert.
//          maximumAge: 0
//        }
// ...or try ujwal-setlur's method of leaving off the enableHighAccuracy portion...
        {
          timeout: 500,
          maximumAge: 0
        }
// NOTE: ujwal-setlur's method did NOT work for my Android emulator.
//             I had to comment out the options object completely for it to not time-out.
      );

      // But, also, simultaneously try to get the fine location.
      navigator.geolocation.getCurrentPosition(
        this.handleGeolocationSuccess,
//        this.handleGeolocationFineError,  // Wouldn't need this, make it your FinalError instead.
        this.handleGeolocationFinalError,
        {
          enableHighAccuracy: true,
          timeout: 7500,  // I have this set for 7.5 seconds, about the length of the first alert's visibility.
          maximumAge: 0
        }
      );
  };

рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдлреЛрди рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рджреЗрд░ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдлрд┐рд░ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрдирдПрдпрд░ рдХреА рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдЙрд╕ рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

  • рд╣рд╛рдВ, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ "рдЗрдиреЗрдмрд▓рд╣реИрдХреЗрд░рд╕рд┐рдЯреА: рдЯреНрд░реВ" рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдкреНрд░рдпрд╛рд╕ рд╣реИ, рдЕрдиреНрдп рдЕрд╕рд┐рдВрдХреНрд╕ "рд░рдл" рдкрд░рд┐рдгрд╛рдореЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ (рд╡рд┐рд╢реЗрд╖рдХрд░ рдпрджрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЗрдиреНрдлрд┐рдирд┐рдЯреА рд╣реИ) рдФрд░ рдЗрд╕ рддрд░рд╣ рдЦреЛ / рдУрд╡рд░рд░рд╛рдЗрдЯ рд╣реЛ рдЧрдпрд╛ ... рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рд╕рддрд░реНрдХ рд░рд╣рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐?

рдПрд▓реЗрдХреНрд╕, рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рдЖрдкрдиреЗ рдХреНрдпрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ? рдпрд╣
рдЬрдм рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рд╣реИ, рдПрдХ рдмрд╛рд░ рдирдпрд╛ рдЯрд┐рдХрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдпрд╣ рдзрд╛рдЧрд╛ рдЗрддрдирд╛ рд▓рдВрдмрд╛ рд╣реИ, рдпрджрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╢реБрдХреНрд░ рдкрд░, 17 рдорд╛рд░реНрдЪ 2017, 10:29 рдкреВрд░реНрд╡рд╛рд╣реНрди рдПрд▓реЗрдХреНрд╕ рд╕рд┐рдиреЗрд▓рдирд┐рдХреЛрд╡ рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/react-native/issues/7495#issuecomment-287419487 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ADJE_HLDGQEplAduqm3Zx5L74dv99mnhks5rmsLjgaJpZM4Ibete
ред

рддреБрдореНрд╣рд╛рд░реА рддрд░рд╣ред рдЙрдкрд░реЛрдХреНрдд рд╕реБрдЭрд╛рд╡реЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди
рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдПрдХ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдПрдХ рдШрдбрд╝реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдпреВрдЖрдИ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ
рдпрджрд┐ рдЖрдкрдХреЗ рдРрдкреНрд╕ рд▓реЛрдХреЗрдЯ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдирд╣реАрдВ
getCurrentPosition рдХреЗ рд╕рд╛рде рдкрд░реЗрд╢рд╛рди рдпрд╣ 10 рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдкрд░ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди Android рд╕рдВрд╕реНрдХрд░рдг 4+ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ

рд╢реБрдХреНрд░ рдкрд░, 17 рдорд╛рд░реНрдЪ 2017, 17:48 рдЧреНрд░реЗ рд╡реБрдЧрд░рд┐рди, рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдПрд▓реЗрдХреНрд╕, рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рдХреБрдЫ рд╕рдорд╛рдзрд╛рди рд╣реИрдВред рдЖрдкрдиреЗ рдХреНрдпрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ? рдпрд╣
рдЬрдм рд╕реЗ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рд╣реИ, рдПрдХ рдмрд╛рд░ рдирдпрд╛ рдЯрд┐рдХрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдпрд╣ рдзрд╛рдЧрд╛ рдЗрддрдирд╛ рд▓рдВрдмрд╛ рд╣реИ, рдпрджрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╢реБрдХреНрд░ рдкрд░, 17 рдорд╛рд░реНрдЪ 2017, 10:29 рдкреВрд░реНрд╡рд╛рд╣реНрди рдПрд▓реЗрдХреНрд╕ рд╕рд┐рдиреЗрд▓рдирд┐рдХреЛрд╡ рд╕реВрдЪрдирд╛рдПрдВ @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐?

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
<
https://github.com/facebook/react-native/issues/7495#issuecomment -287419487
,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
<
https://github.com/notifications/unsubscribe-auth/ADJE_HLDGQEplAduqm3Zx5L74dv99mnhks5rmsLjgaJpZM4Ibete

ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/react-native/issues/7495#issuecomment-287424598 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AACQ6DgWuUzw4hj7rmr8LDzcRHjEheIcks5rmsdSgaJpZM4Ibete
ред

рдХрднреА-рдХрднреА рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдХреБрдЫ рдпрд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╕рдорд╛рдзрд╛рди рд╣реИрдВ рдФрд░ рдЕрдм рддрдХ рдХреЛрдИ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореБрдЭреЗ рдкрд╛рдЧрд▓ рдмрдирд╛ рджреЗрддрд╛ рд╣реИ :(

рдХреНрдпрд╛ рдХреЛрдИ рдореВрд▓рдкреНрд░рдХреГрддрд┐ рд╣реИ рдЬреЛ getCurrentPosition рдЬреИрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рджреЛрд╣рд░рд╛рддреА рд╣реИ? рдореИрдВ рдЕрдиреНрдп рд░реЗрдкреЛ рдХреА рдорд╛рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЬрд╛рд╡рд╛ рдХреЛрдб рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛ред

watchPosition рдкрд╛рд╕ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрдм рд╕реНрдерд╛рди рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрднреА рдирд╣реАрдВ рдлреЗрдВрдХрддрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ = 1000 рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рд╣реИ

'GetCurrentPosition' рдкрд░, рдпрд╣ рдЯрд╛рдЗрдордЖрдЙрдЯ рдлреЗрдВрдХ рджреЗрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ GPS рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рд╕рдВрд╡рд╛рдж рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ 'getCurrentPosition' рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реВрдВ

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдореИрдВрдиреЗ рд╕рднреА рдмрджрд▓рд╛рд╡реЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдФрд░ рдЕрдм рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореБрджреНрджрд╛ рдХрд╣рд╛рдВ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ рдЕрдЧрд░ рддреАрд╕рд░рд╛ рдкрд░рдореЗрд╕ рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рд╕реНрдерд╛рди рдореЛрдб рдХреЛ рд╣рд╛рдИ рдПрдХреНрдпреВрд░реЗрд╕реА рдпрд╛ рдмреИрдЯрд░реА рд╕реЗрд╡рд┐рдВрдЧ рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВред рдЕрдиреНрдпрдерд╛, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреЗрд╡рд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмрдЬрд╛рдп рд╣рд╛рдИ рдПрдХреНрдпреВрд░реЗрд╕реА рдпрд╛ рдмреИрдЯрд░реА рд╕реЗрд╡рд┐рдВрдЧ рдХрд╛ рдЪреБрдирд╛рд╡ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХреНрд░реЗрддрд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореЗрдиреВ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдЕрд▓рдЧ рддрд░реАрдХрд╛ рд╣реИред

рддреАрд╕рд░реЗ рдкрд╛рд░рдо рдореЗрдВ enableHighAccuracy: false рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рд╛рдИ рдПрдХреНрдпреВрд░реЗрд╕реА, рдмреИрдЯрд░реА рд╕реЗрд╡рд┐рдВрдЧ рдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдУрдирд▓реА рдСрдкреНрд╢рдВрд╕ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдореЗрдВ рддреАрд╕рд░рд╛ рдкрд░рдо рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рд╣реИред

location-mode-100621707-large

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдирд┐рдХрд╛рд▓реЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред

рдЕрдзрд┐рдХрддрдо рдХрд╛рд░реНрдп рдирд┐рдХрд╛рд▓рдирд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рд╣реИред рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдХреБрдЫ рдореБрджреНрджреЛрдВ рдкрд░ рднрд╛рдЧ рдЧрдпрд╛ рдЬрд╣рд╛рдВ рдПрдХ рдирдХреНрд╢реЗ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдХреЛ рд╕реНрдерд┐рд░ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ред

@nigelnindo рдЖрдк рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? рдЖрд░рдПрди рдХреЗ рднреАрддрд░ рдпрд╛ рд╕реАрдзреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ?

@ L3V147H4N рд╕реАрдзреЗ Android рдореЗрдВред рд╡рд╣рд╛рдБ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЖрд░рдПрди рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИрдВред рдЕрдЧрд░ рдЗрд╕рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд░реБрдЪрд┐ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЗрд╕ рдереНрд░реЗрдб рдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХрд╛ рдорди рдирд╣реАрдВ рд╣реИред

рд╢рд╛рдпрдж рдЖрдк https://github.com/mauron85/react-native-background-geolocation#getlocationssuccess-fail рдкрд░ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдпрд╣ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИ рдФрд░ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рд▓рдЧрднрдЧ рд╣рд░ рдХреЛрдИ рдмрд╣реБрдд рдЖрднрд╛рд░реА рд╣реЛрдЧрд╛ @nigelnindo
https://github.com/nigelnindo

рд╕реЛрдо рдкрд░, 3 рдЕрдкреНрд░реИрд▓ 2017 рдХреЛ 17:34 рдкрд░ рдирд┐рдЧреЗрд▓ рдирд┐рдВрджреЛ рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@ L3V147H4N https://github.com/L3V147H4N рд╕реАрдзреЗ Android рдореЗрдВред рд╡рд╣рд╛рдВ
рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ
RN рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рдирд╣реАрдВ рд╣реИрдВред рдЕрдЧрд░ рдХрд╛рдлреА рд╣реИ
рдЗрд╕ рдореЗрдВ рд░реБрдЪрд┐, рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХрд╛ рдорди рдирд╣реАрдВ рдХрд░рддрд╛
рдЗрд╕ рдереНрд░реЗрдб рдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд Android рдкрд░ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/react-native/issues/7495#issuecomment-291198134 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AACQ6BwArzmfCk3TXfiRMp7kpdwMLM81ks5rsR-hgaJpZM4Ibete
ред

рд╣рддрд╛рд╢рд╛ ... рдореИрдВ navigator.geolocation.getCurrentPosition рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд░рд╣рддреА рд╣реИ:
рд╕реНрдерд╛рди рдЕрдиреБрд░реЛрдз рдХрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИред Android рдХреЗ рд▓рд┐рдП, iOS рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ True / False рдХреЛ EnableHighAccuracy рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, 3rd рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП, AndroidManifest рдореЗрдВ COURSE рдФрд░ FINE рджреЛрдиреЛрдВ рд╕реНрдерд╛рди рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЬреЛрдбрд╝реА рд╣реИрдВред

Android SDK 23, рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕ 25.0.0
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 16.0.0-рдЕрд▓реНрдлрд╛.6
рдЖрд░рдПрди 0.43.3

рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдбрдЧрд▓рд╕ рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ getCurrentPosition рдирд╣реАрдВ рд╣реИ
рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдЦреЛрдЬрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдкрд░ рдПрдХ рдирдЬрд░ рдбрд╛рд▓реЗрдВ
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп watchPosition

рд╕рд╛рднрд╛рд░ @raldred
рдШрдбрд╝реА рдХрд╛ рдХрд╛рдо рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдорджрдж рдХреА рд╕рд░рд╛рд╣рдирд╛!

@douglaswissett рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЬрд▓реНрдж рд╣реА getCurrentPosition рд▓рд┐рдП рдордЬрдмреВрдд рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред

рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ watchPosition рддреЛ clearWatch рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж рднреВ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд? рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ clearWatch рдХреЛ рдХреЗрд╡рд▓ componentDidMount рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

@ рд╣рд╛рдБ рд╣рд╛рдБред рдпрд╣реА рддреЛ рдореИрдВ рдХрд░рддрд╛ рд╣реВрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ navigator.geolocation.clearWatch рдХрд┐рд╕реА рднреА рд╕рдордп рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдмрд╕ рдЕрдкрдиреЗ рдШрдЯрдХ рдкрд░ рдкрд╣рд░реЗрджрд╛рд░ рдХрд╛ рдПрдХ рд╕рдВрджрд░реНрдн рд░рдЦреЗрдВ, рдЬрд┐рд╕реЗ watchPosition рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

рдбреЙрдХреНрд╕ рд╕реЗ рдореИрдВрдиреЗ https://facebook.github.io/react-native/docs/geolocation.html рдкрд░ рдкрдврд╝рд╛, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ this.watchID watchPosition рдХреЙрд▓рдмреИрдХ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдирдпрд╛ рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж clearWatch рдЯреНрд░рд┐рдЧрд░ рд╣реИред

@ рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рдпрд╣ рд╕рд╣реА рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
https://gist.github.com/raldred/b08cf60712eb87d81f05437444dff4ae

@raldred рдиреЗ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдмрд╛рдХреА рд╕рдм рдХреБрдЫ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди? рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдХреЛрд╢рд┐рд╢ рдХрд░реЛ рдФрд░ nothings рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдорджрдж рдХрд░реЛ! рдпрджрд┐ рдЖрдк рдХреБрдЫ рд╕реНрдирд┐рдкреЗрдЯ рдпрд╛ рдХреБрдЫ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

@ gerard0315 рдЖрдкрдХреЛ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдлрд▓рддрд╛ рдорд┐рд▓рддреА рд╣реИ?

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдВрдбреНрд░реЙрдЗрдб рдлреЛрди рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ

IOS рдХреЗ рд▓рд┐рдП Outlook рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ https://aka.ms/o0ukef


рдкреНрд░реЗрд╖рдХ: рдЬреЙрд░реНрдЬ рдЕрд▓реНрдореЛрдирд╛рдб рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рдкреНрд░реЗрд╖рд┐рдд: рдордВрдЧрд▓рд╡рд╛рд░, 9 рдордИ, 2017 2:29:56 рдЕрдкрд░рд╛рд╣реНрди
To: facebook / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдирд┐рд╡рд╛рд╕реА
Cc: рдЙрдЬреНрдЬрд╡рд▓ рд╕реЗрдЯреНрд▓реВрд░; рдЯрд┐рдкреНрдкрдгреА
рд╡рд┐рд╖рдп: Re: [facebook / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдирд┐рд╡рд╛рд╕реА] рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди 'enableHighAccuracy' Android рдкрд░ рд╣рдореЗрд╢рд╛ (# 7495)

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди? рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдХреЛрд╢рд┐рд╢ рдХрд░реЛ рдФрд░ nothings рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХреГрдкрдпрд╛ рдорджрдж рдХрд░реЛ! рдпрджрд┐ рдЖрдк рдХреБрдЫ рд╕реНрдирд┐рдкреЗрдЯ рдпрд╛ рдХреБрдЫ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub https://github.com/facebook/react-native/issues/7495#issuecomment-300307037 рдкрд░ https://github.com/notifications-unsubscribe-auth/ рдкрд░ рджреЗрдЦреЗрдВ AFkMXWcokXoYDpsw28UaiDDCvRpE3Rks5r4NrUgaJpZM4Ibete ред

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдкрдиреЗ рд╕реНрдирд┐рдкреЗрдЯреНрд╕ рд╕рд╛рдЭрд╛ рдХрд░ рд▓рд┐рдП рд╣реИрдВ рдЬреЛ рдЪрд▓ рд░рд╣реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
рдПрдВрдбреНрд░реЙрдЗрдб 4-7ред

Tue рдкрд░, 9 рдордИ 2017, 22:29 рдЬреЙрд░реНрдЬ рдЕрд▓реНрдореЛрдирд╛рд╕реАрдб, рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди? рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЛ рдФрд░ nothings рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ,
рдХреГрдкрдпрд╛ рд╕рд╣рд╛рдпрддрд╛ рдХреАрдЬрд┐рдП! рдпрджрд┐ рдЖрдк рдХреБрдЫ рд╕реНрдирд┐рдкреЗрдЯ рдпрд╛ рдХреБрдЫ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/react-native/issues/7495#issuecomment-300307037 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AACQ6HSlN8YS_jE6NY9w2vuk7Hv4Wjwfks5r4NrSgaJpZM4Ibete
ред

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрджреНрдпрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ) рдХреЗрд╡рд▓ рддрднреА рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ (рджреЗрд╢рд╛рдВрддрд░, рдЕрдХреНрд╖рд╛рдВрд╢, рдКрдВрдЪрд╛рдИ) рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рдпрд╛ рджреЛ - nothing works рдмрджрд▓рддреЗ рд╣реИрдВред

рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рд░рд┐рдПрдХреНрдЯ-рдиреЗрдЯрд┐рд╡ рд╣реИрдВрдбрд▓ рд▓реЛрдХреЗрд╢рди рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рдПрдХ рд╕рд╣рдЬ рджреЛрд╖ рд╣реИред (рдЖрдИрдУрдПрд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рдХрдореА рд▓рдЧрддреА рд╣реИ, iirc)

String provider = highAccuracy ? LocationManager.GPS_PROVIDER : LocationManager.NETWORK_PROVIDER;

LocationManager.GPS_PROVIDER is best for outdoors when you have a clear view of the sky

рдЬрдмрдХрд┐

LocationManager.NETWORK_PROVIDER is best for indoors, since it uses networks (and cell towers?)

рдпрджрд┐ рдЖрдкрдХреЛ рд╕реБрдкрд░ рд╕рдЯреАрдХ рд╕реНрдерд╛рди рдЪрд╛рд╣рд┐рдП рддреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЛ рджреЛрдиреЛрдВ / рд╕рднреА рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдлрд┐рд░ рдЖрдк рд╕рдЯреАрдХрддрд╛, рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдХреА рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдФрд░ рддрд╛рдЬрд╛ рд╕реНрдерд╛рди рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВ:

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ:

рд╕реЗрдЯрдЕрдк рджреЛ watchID рдЪрд░ -> watchIDGPS рдФрд░ watchIDNetwork ред рдлрд┐рд░ рджреЛ рд╡реЙрдЪрд░реНрд╕ рд╕реЗрдЯрдЕрдк рдХрд░реЗрдВ, рдПрдХ enableHighAccuracy=true рдФрд░ enableHighAccuracy=false рдпрд╣ рджреЛрдиреЛрдВ GPS рдкреНрд░рджрд╛рддрд╛ рдХреЛ рд▓реМрдЯрд╛ рджреЗрдЧрд╛, рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рджрд╛рддрд╛ (рдиреЗрдЯрд╡рд░реНрдХ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдШрд░ рдХреЗ рдЕрдВрджрд░ рд╣реЛрдЧрд╛)

рд░рд┐рдПрдХреНрдЯ рддрд░реАрдХреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ JS рдереНрд░реЗрдб рдкрд░ рдХрд░ рд░рд╣рд╛ рд╣реИ; рдпрд╣ рд╕рдВрд╕рд╛рдзрди-рдЕрднрд╛рд╡ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЖрдкрдХреЗ рдРрдк рдХреЛ рдлреНрд░реАрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рджреЗрд╢реА рдореЗрдВ:

рдЖрдк рдЕрдкрдиреА рдкрд╕рдВрдж рдХреЗ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ LocationModule.java рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдЬрд┐рд╕ рднреА рдкреНрд░рджрд╛рддрд╛ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ mLocationListener рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЬрдм рддрдХ React-Native рдЗрд╕ "рд╕рдорд╕реНрдпрд╛" рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ред

@ralred , рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди AndroidPermissions рд╡рд╕реНрддреБ рдХреНрдпрд╛ рд╣реИ?

рдореИрдВрдиреЗ рд╕рднреА рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд╕рднреА рд╡рд┐рдлрд▓ рд░рд╣реЗтАжред
рдЕрдЪрд╛рдирдХ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдореЗрд░реЗ рдРрдк рдореЗрдВ рдПрдХ рдореИрдк рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдЧреВрдЧрд▓ рдореИрдк рдХреА рддрд░рд╣ рдмрд╛рдЗрдбреВ рдореИрдк, рдПрдХ рдЪреАрдиреА рдирдХреНрд╢рд╛ (map.baidu.com), рдпрд╣ рдорд╛рд░реНрдХрд░ рдФрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ !!! рдЕрдВрдд рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрдирд╛рдпрд╛ ~

рдЖрдк рдЗрд╕реЗ рдЬреАрдердм, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдмреНрдпреВрдб-рдореИрдк рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ

рдЖрдпрд╛рдд {
MapView, // рдирдХреНрд╢рд╛ рджреЗрдЦреЗрдВ (рдореБрдЭреЗ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ)
MapTypes, // 2D рдпрд╛ 3D рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░реЗрдВ (рдореБрдЭреЗ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ)
рд╕реНрдерд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди // рдПрдкреАрдЖрдИ (рдореБрдЭреЗ рдЬрд╝рд░реВрд░рдд рд╣реИ)
} react рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдирд╛рдпрдбреВ-рдорд╛рдирдЪрд┐рддреНрд░ тАЩрд╕реЗ;

рдШрдЯрдХрдбрд┐рдорд╛рдЙрдВрдЯ () {
Geolocation.getCurrentPosition ()
.then (рдбреЗрдЯрд╛ => {
Alert.alert (JSON.stringify (data.latitude), JSON.stringify (data.longitude))
})
}

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рджреВрд╕рд░реЗ рджреЗрд╢ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд╕ рдХреБрдЫ рдорд╛рдирдЪрд┐рддреНрд░ рдРрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд╕реЛрдЪ, рдЖрдк рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдирдХреНрд╢реЗ рдпрд╛ рдЕрдиреНрдп рдорд╛рдирдЪрд┐рддреНрд░ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ ...

рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╡реЙрдЪрдкреЛрдЬрд┐рд╢рди рдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рднреА рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЖрдИрдУрдПрд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА RN v0.45.0 рд╣реИ (рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ 0.44.0 рдкрд░ рд╣реВрдВ) рдФрд░ рдпрд╣ рдЕрднреА рднреА рд╣рд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ? рдЖрдУ!

@rexlow
рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдореИрдВ 0.44 рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреНрдпрд╛ рдЖрдкрдиреЗ v0.45 рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?

@VietDucPhan рдпрд╣ рд╕рд┐рд░реНрдл рдЕрднреА, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ

@rexlow рдУрд╣ рддреБрдореНрд╣рд╛рд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИред рдЕрдм, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдореБрдЭ рдкрд░ рдкреНрд░рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдХрд┐рд╕реНрдордд рдХреА рдЬрд░реВрд░рдд рд╣реИред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╡рд┐рдХрд▓реНрдк рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ? рдмрд╕ рдпрд╣реА рдПрдХ рдЪреАрдЬ рд╣реИ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреА рд╣реИред

IOS рдХреЗ рд▓рд┐рдП Outlook рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ https://aka.ms/o0ukef


рдкреНрд░реЗрд╖рдХ: viet_duc_phan рд╕реВрдЪрдирд╛рдПрдБ @ithub.com
рдкреНрд░реЗрд╖рд┐рдд: рд░рд╡рд┐рд╡рд╛рд░, 18 рдЬреВрди, 2017 11:26:15 PM
To: facebook / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдирд┐рд╡рд╛рд╕реА
Cc: рдЙрдЬреНрдЬрд╡рд▓ рд╕реЗрдЯреНрд▓реВрд░; рдЯрд┐рдкреНрдкрдгреА
рд╡рд┐рд╖рдп: Re: [facebook / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдирд┐рд╡рд╛рд╕реА] рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди 'enableHighAccuracy' Android рдкрд░ рд╣рдореЗрд╢рд╛ (# 7495)

@rexlow https://github.com/rexlow рдУрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИред рдЕрдм, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдореБрдЭ рдкрд░ рдкреНрд░рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдХрд┐рд╕реНрдордд рдХреА рдЬрд░реВрд░рдд рд╣реИред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub https://github.com/facebook/react-native/issues/7495#issuecomment-309349488 рдкрд░ https://github.com/notifications-unsubscribe-auth/ рдкрд░ рдореНрдпреВрдЯ

@rexlow @ ujwal-setlur рдмрд╕ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭ рдкрд░ рдХрд┐рд╕реНрдордд рдиреЗ рд╣рдорд▓рд╛ рдХрд┐рдпрд╛ред рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИред рдореИрдВрдиреЗ рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рд╛ред

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?

Tue рдкрд░, 20 рдЬреВрди 2017, 19:18 viet_duc_phan, рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@ рдЧреНрд░реАрдХреЛрд▓реЛ https://github.com/rexlow @ ujwal-setlur
https://github.com/ujwal-setlur рдмрд╕ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рднрд╛рдЧреНрдп рдореБрдЭ рдкрд░ рд╡рд╛рд░ рдХрд░реЗред рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд╣реИред рдореИрдВ рдирд╣реАрдВ рдмрджрд▓рд╛
рдХреБрдЫ рднреАред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/react-native/issues/7495#issuecomment-309843462 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AACQ6OVyeCsOgd-qevP9CrP9XJMhwaxsks5sGAz3gaJpZM4Ibete
ред

@raldred рд╣рдореЗрд╢рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

@VietDucPhan рдХреНрдпрд╛ рдЖрдк рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ?

Tue рдкрд░, 20 рдЬреВрди 2017, 20:52 viet_duc_phan, рд╕реВрдЪрдирд╛рдПрдВ @github.com рдиреЗ рд▓рд┐рдЦрд╛:

@raldred https://github.com/raldred рд╣рдореЗрд╢рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/react-native/issues/7495#issuecomment-309870269 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AACQ6N5SVbYeDEeY9FRnTQSrvpLwKL5aks5sGCLmgaJpZM4Ibete
ред

@ рд╢реНрд░рдВрдЦрд▓рд╛ рдореЗрдВ рдореВрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдПрдХ рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ:

navigator.geolocation.getCurrentPosition(
      (position) => {
        console.log(position);
       },
       (error) => {
        console.log(error)
      },
      {enableHighAccuracy: true, timeout: 20000, maximumAge: 10000}
);

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рд╡рд┐рдлрд▓ рд╣реИред рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╡рд┐рдХрд▓реНрдк рддрд░реНрдХ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рдирд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ:

navigator.geolocation.getCurrentPosition(
      (position) => {
        console.log(position);
       },
       (error) => {
        console.log(error)
      }
);

@dreallday рд╕рд╣реА рд╣реИ, рджреЗрд╢реА рд╣реИрдВрдбрд▓ рдХреЛ рдПрдВрдбреНрд░реЙрдЗрдб рд▓реЛрдХреЗрд╢рди рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рд░рд┐рдПрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреЛ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдлреНрдпреВрдЬреНрдб рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ рдЬреЛ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рдЬрд╛рджреВ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рддреА рд╣реИред

рдореБрдЭреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рд╕реНрдерд╛рди рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдлрд╝реНрдпреВрдЬрд╝-рд╕реНрдерд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд▓рдЧрд╛ред

@raldred рд╣рд╛рдп рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореЗрд▓ рдХреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХреА рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

@ derman232 рдРрдк рдХреЗ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рдЪрд▓реЗ рдЬрд╛рдиреЗ рдкрд░ рдХреНрдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-

@ рдлреНрд░реЗрдВрдХреЛрд▓реЛ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛, рдореЗрд░реЗ рдРрдк рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреИрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛, рдЗрд╕ рдкрд░ рдЕрдкрдирд╛ рдЗрдирдкреБрдЯ рджреЗ рд░рд╣рд╛ рд╣реВрдВ:

  • рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб> = 6.0 рдХреЛ рд░рдирдЯрд╛рдЗрдо рдХреЗ рджреМрд░рд╛рди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ
  • рдЗрд╕ рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рдкреНрд░рд╢реНрди рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рд╣реИрдВ: рдкреНрд░рд╢реНрди
  • рдореИрдВрдиреЗ рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП React Native рд╕реЗ рдЕрдиреБрдорддрд┐рдпрд╛рдБрдПрдВрдбреНрд░реЛрдЗрдб рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛

рдЕрдм рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдирдорд╕реНрддреЗ,
рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рдЖрдЬрдорд╛рдпрд╛ред
рдХреГрдкрдпрд╛ рд╕рд▓рд╛рд╣ рджреЗрдВред
рдзрдиреНрдпрд╡рд╛рдж

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ рджреЗрд╢реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред QA'd 30+ рдЕрд╕рд▓реА Android рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдиреВрдЧрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд┐рдВрдЬрд░рдмреНрд░реЗрдб рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИред
рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╣рдордиреЗ рддрдм рд╕реЗ рд▓рд╛рдЗрд╡ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдореБрджреНрджреЛрдВ рдХреА рдХреЛрдИ рд░рд┐рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХреА рд╣реИред

@adriancuco рдЖрдк рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рдкреНрд░рдХрдЯреАрдХрд░рдг рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╣рдо рдЖрдЧреЗ рдФрд░ рдорджрдж рдХрд░ рд╕рдХреЗрдВред

  • RN рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг?
  • рдЖрдк рдХрд┐рди Android рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
  • рдЖрдкрдХреЛ рдХрд┐рди рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ?

рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпрд╛ рдЙрдкрдХрд░рдг рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдЧрд╣рдирддрд╛ рд╣реЛрдЧреА, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рд╡рд╣ рдХреНрдпрд╛ рд╣реИред

raldred,

рдорд╛рдлрд╝ рдХрд░рдирд╛ред рдореЗрд░реА рдЧрд▓рддреА!
рдЦреБрдж рдХреЛ рдорд╛рд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдлреЛрди рдкрд░ рд╕реНрдерд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рдкрдврд╝рд╛ рдерд╛, рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рд╕рдХреНрд╖рдо рдЬреАрдкреАрдПрд╕ рдерд╛ред ; (
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ GPS, Wifi, рдЖрджрд┐ рд╕рдм рдХреБрдЫ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореИрдВ рдЗрд╕рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдБред
рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж

рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?

рдлрд┐рд░ рднреА рдХреЛрдИ рд╣рд▓ рдирд╣реАрдВред


рдкреНрд░реЗрд╖рдХ: adriancuco рд╕реВрдЪрдирд╛рдПрдВ @github.com
рдкреНрд░реЗрд╖рд┐рдд: рдордВрдЧрд▓рд╡рд╛рд░, 4 рдЬреБрд▓рд╛рдИ, 2017 2:44:28 PM
To: facebook / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдирд┐рд╡рд╛рд╕реА
Cc: рдорд╛рд░реВрдПрди рд╕рдпрд╛рд░реА; рдЯрд┐рдкреНрдкрдгреА
рд╡рд┐рд╖рдп: Re: [facebook / рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдирд┐рд╡рд╛рд╕реА] рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди 'enableHighAccuracy' Android рдкрд░ рд╣рдореЗрд╢рд╛ (# 7495)

raldred,

рдорд╛рдлрд╝ рдХрд░рдирд╛ред рдореЗрд░реА рдЧрд▓рддреА!
рдЦреБрдж рдХреЛ рдорд╛рд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдлреЛрди рдкрд░ рд╕реНрдерд╛рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рдкрдврд╝рд╛ рдерд╛, рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рд╕рдХреНрд╖рдо рдЬреАрдкреАрдПрд╕ рдерд╛ред ; (
рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ GPS, Wifi, рдЖрджрд┐ рд╕рдм рдХреБрдЫ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдореИрдВ рдЗрд╕рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдБред
рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рдЯрд┐рдкреНрдкрдгреА рдХреА рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub https://github.com/facebook/react-native/issues/7495#issuecomment-312881724 рдкрд░ https://github.com/notifications-unsubscribe-auth/ рдкрд░ рджреЗрдЦреЗрдВред AD79YGcm507EtBxrFHHJkEc-OBvRsjKmks5sKkG7gaJpZM4Ibete

@ m-Sayari рдЖрдк рд╣рдорд╛рд░реА рдорджрдж рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝реА рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВред

  • рдЖрд░рдПрди рд╕рдВрд╕реНрдХрд░рдг
  • Android рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рд╕рдВрд╕реНрдХрд░рдг
  • Android рдбрд┐рд╡рд╛рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг
  • рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЙрдкрдХрд░рдг рд╣реИрдВред

рд╡реЗ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рд░рдг рдЖрдкрдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди / рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдВрдЧреЗред рдореЗрд░реЗ рдкрд╣рд▓реЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рдЬрд┐рдпреЛ рдРрдкреНрд╕ рдореЗрдВ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрд╣рд╛рдБ рд╣рд▓! Android 6 рдХреЗ рд╕рд╛рде Redmi 4A рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ RN 0.45.1ред

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА редgeolocation.getCurrentPosition () рдХреЗ рдЕрдВрджрд░ ComponentsDidMount ()
GetCurrentPosition рдХреЗ рдмрдЬрд╛рдп рдХреЗрд╡рд▓ рд╡реЙрдЪрдкреЙрдЬрд╝рд┐рд╢рди () рдХреЛ рдПрдХ рд╣реА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд░реЗрдВред

@raldred
рдЖрд░рдПрди рд╕рдВрд╕реНрдХрд░рдг
0.46
Android рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рд╕рдВрд╕реНрдХрд░рдг
рдЖрдкреА реиреи
Android рдбрд┐рд╡рд╛рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг
6.0.1
рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдЙрдкрдХрд░рдг рд╣реИрдВред
рдиреЗрдХреНрд╕рд╕ 5

рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд┐рдирд╛ getCurrentLocation рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдореЗрд░реЗ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ 'enableHighAccuracy' рдХреЛ рдЕрд╕рддреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░реЗрдВ

рдирдорд╕реНрдХрд╛рд░ @raldred , рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдЕрдиреНрдп рдиреЗ RN 0.47 рдкрд░ рджрд░реНрдЬ рдХреАред

  • рдЖрд░рдПрди рд╕рдВрд╕реНрдХрд░рдг: 0.47
  • Android рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рд╕рдВрд╕реНрдХрд░рдг рдЖрд░рдПрди рдЪреВрдХ рдкрд░ рдЫреЛрдбрд╝ рджрд┐рдпрд╛:
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        minSdkVersion 16
        targetSdkVersion 22
  • Android рдбрд┐рд╡рд╛рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг: 6.0.1, 7.0
  • рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИрдВ:

    • Android 6.0.1 рдХреЗ рд╕рд╛рде Nexus 5

    • Xiaomi Redmi 3S Android 6.0.1 рдХреЗ рд╕рд╛рде

    • рдПрдВрдбреНрд░реЙрдЗрдб 7.0 рдХреЗ рд╕рд╛рде рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░

getCurrentPosition рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ "рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗрд╡рд▓" рд╕реНрдерд╛рди рдореЛрдб рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ ( Location request timed out ) рдЬрдм рдореЛрдб "рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛" рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИред

рдореБрдЭреЗ рдХрдо рд╕реЗ рдХрдо рдбрд┐рд╡рд╛рдЗрд╕ рдУрдирд▓реА рдореЛрдб рдореЗрдВ getCurrentPosition рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛:

    navigator.geolocation.getCurrentPosition(setLocation);

рдореИрдВрдиреЗ рдпрд╣ рдорд╛рди рд▓рд┐рдпрд╛ рдФрд░ рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдЕрд▓рдЧ рдорд╛рдорд▓реЗ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ред
рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рджреЛ рд╡рд╕реНрддреБрдПрдВ рдереАрдВ рдЬреЛ рд╕реНрд╡рдпрдВ maximumAge рдФрд░ enableHighAccuracy рд╕рдВрдШрд░реНрд╖ рдХрд░рддреА рдереАрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпреЗ рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рдереЛрдбрд╝реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╕рдорд╛рди рд╣реИрдВ, рдЬрдмрдХрд┐ рдЕрдзрд┐рдХрддрдо рдЖрдпреБ рдЖрдкрдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд╡реАрдирддрдо рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рднрд▓реЗ рд╣реА рд╕рдЯреАрдХрддрд╛ рдХрдо рд╣реЛ, enableHighAccuracy рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрддрдорд╛рди рдФрд░ рд╕рдЯреАрдХ рд╕реНрдерд╛рди рдорд┐рд▓реЗ, рдореБрдЭреЗ рдирд┐рдореНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред
{enableHighAccuracy: true, timeout: 20000, maximumAge: 60000} рдЬрдм рддрдХ рдореИрдВрдиреЗ рдЕрдзрд┐рдХрддрдо рдЖрдпреБ рдирд╣реАрдВ рдирд┐рдХрд╛рд▓реА рдФрд░ enableHighAccuracy рдЙрдореНрдореАрдж рд╣реИ, рдЗрд╕рд╕реЗ рдХрд┐рд╕реА рдХреЛ рдорджрдж рдорд┐рд▓рддреА рд╣реИред

рдореИрдВ рд╕рд┐рд░реНрдл 7e11bad86fd21ce1a8408218e66ce85993d9db69 рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реВрдВ рдпрд╛ рдирд╣реАрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓рдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ред рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИ, рдореИрдВ рдЕрднреА рднреА рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рддреНрд░реБрдЯрд┐ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВред

@olieidel рд╡реЙрдЪ рд╕реНрдерд┐рддрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдпрд╣ рднреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрдерд╛рди рдПрдХреНрд╕реЗрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИ, рдФрд░ рдпрд╣ рдХрд┐ рдЖрдкрдХреА рд╕реНрдерд╛рди рд╕реЗрд╡рд╛ рд╕рдХреНрд╖рдо рд╣реИред

@olieidel рдЖрдк рдЬрд╛рдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЗ рдРрдк рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдкреАрдЖрдИ, рдЕрдиреБрдорддрд┐рдпрд╛рдБрдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рди рдЕрдиреБрдорддрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рд╣реИ, рдЖрдк рдкрд╣рд▓реЗ рдЬрд╛рдВрдЪ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдлрд┐рд░ рдкреВрдЫреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП @mrbarde рдзрдиреНрдпрд╡рд╛рдж!

рдЖрд╣, рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рдПрдХ рдкреВрд░реЗ рджрд┐рди рдХреЗ рдмрд╛рдж, рдпрд╣рд╛рдБ рдореЗрд░реЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдФрд░ рдПрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ:
рдЖрд░рдПрди 0.46.4, рдбрд┐рд╡рд╛рдЗрд╕: рдиреЗрдХреНрд╕рд╕ 5 рдПрдХреНрд╕, рдПрдкреАрдЖрдИ 25

рд╕реНрдерд╛рди рдореЛрдб: рдХреЗрд╡рд▓ рдбрд┐рд╡рд╛рдЗрд╕

  • getCurrentPosition , enableHighAccuracy: true : GPS рд╕рд┐рдЧреНрдирд▓ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЯрд╛рдЗрдордЖрдЙрдЯ
  • getCurrentPosition , enableHighAccuracy: false : рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ (рдЯрд╛рдЗрдордЖрдЙрдЯ)ред рд╢рд╛рдпрдж рд╕реНрдерд╛рди рд╕реЗрд╡рд╛рдУрдВ (рд╕реНрдерд╛рди рдореЛрдб! = рдХреЗрд╡рд▓ рдЙрдкрдХрд░рдг) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • watchPosition , enableHighAccuracy: true : GPS рд╕рд┐рдЧреНрдирд▓ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╕рдордпрдмрд╛рд╣реНрдп рд╣реЛрддрд╛ рд╣реИ
  • watchPosition , enableHighAccuracy: false : рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛

рд╕реНрдерд╛рди рдореЛрдб: рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛

  • getCurrentPosition , enableHighAccuracy: true : рдЬреАрдкреАрдПрд╕ рд╕рд┐рдЧреНрдирд▓ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╕рдордпрдмрд╛рд╣реНрдпред рдЖрдкрдХреЗ maximumAge рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдкреБрд░рд╛рдирд╛ рд╕реНрдерд╛рди рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИред
  • getCurrentPosition , enableHighAccuracy: false : 5-6s рдХреЗ рдмрд╛рдж рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред
  • watchPosition , enableHighAccuracy: true : рдЬреАрдкреАрдПрд╕ рд╕рд┐рдЧреНрдирд▓ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рд╕рдордпрдмрд╛рд╣реНрдп
  • watchPosition , enableHighAccuracy: false : рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рд╕рд╛рд░рд╛рдВрд╢
рдпрджрд┐ рдЖрдкрдХрд╛ рд╕реНрдерд╛рди рдореЛрдб рдХреЗрд╡рд▓ рдбрд┐рд╡рд╛рдЗрд╕ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдЬреАрдкреАрдПрд╕ рд╕рд┐рдЧреНрдирд▓ рдХреА рдЙрдореНрдореАрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЛ рд╕реНрдерд╛рди рд╕реЗрд╡рд╛рдУрдВ (рд╕реНрдерд╛рди рдореЛрдб! = рдХреЗрд╡рд▓ рдЙрдкрдХрд░рдг) рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд▓реЛрдХреЗрд╢рди рдПрдкреАрдЖрдИ рдХреЗ рд╕рднреА рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рд╣реИ рдХрд┐ рдкреГрдереНрд╡реА рд╕рдорддрд▓ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд░рдХ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рд▓реЛрдХреЗрд╢рди рдореЛрдб рдХреЗ рд╕рд╛рде рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ == рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗрд╡рд▓ ( рдПрдореБрд▓реЗрдЯрд░, рдПрдХ рдирдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЙрдкрдХрд░рдг) рдФрд░ рдЖрдк рдПрдХ рдХрдорд░реЗ рдореЗрдВ рдмреИрдареЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЬреАрдкреАрдПрд╕ рд╕рд┐рдЧреНрдирд▓ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЖрдк рдХреЗрд╡рд▓ рдЯрд╛рдЗрдордЖрдЙрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣рд▓
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд╕реВрддреНрд░ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ, рдореИрдВ рднреА рджреЛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ watchPosition рдХреЗ рд▓рд┐рдП рдорд╛рди рднрд┐рдиреНрди рд╢реНрд░реЛрддрд╛рдУрдВ enableHighAccuracy рдФрд░ рдмрд╕ рджреЛрдиреЛрдВ рдХреЗ рдкрд╣рд▓реЗ рдорд╛рди рд▓реЗ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрдВред рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реБрдП, рдореБрдЭреЗ рдпрд╣ рдЖрднрд╛рд╕ рд╣реБрдЖ рдХрд┐ рджреЛрдиреЛрдВ рд╢реНрд░реЛрддрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд▓реМрдЯрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджрд┐рди рдХреЗ рд▓рд┐рдП рдореЗрд░реА рдбрд┐рдмрдЧрд┐рдВрдЧ-рд╕рд╣рдирд╢реАрд▓рддрд╛ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИ ...
рдпрд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рд╕реНрдерд╛рди рдореЛрдб рдХреЗрд╡рд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдирд╣реАрдВ рд╣реИред

@olieidel рдЬрд╝рд░реВрд░, рдФрд░ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╕реАрдзреЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдПрдкреАрдЖрдИ, рдЕрдЧрд░ рдпрд╣ рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИ рдпрд╛ рд╕рд┐рд░реНрдл рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдЙрдкрдпреБрдХреНрдд рдмрд╛рдд рдпрд╣ navigator.geolocation рд╕рд╛рде рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧреА рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдлреЗрд╕рдмреБрдХ рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░реЗрдЧрд╛ред рдФрд░ рдЧрд╣рд░реА рдЦреБрджрд╛рдИ рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдореАрд▓ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рджреЛрд╣рд░рд╛рдиреЗ рдореЗрдВ рдореБрдЭреЗ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдПрдВрдбреНрд░реЙрдЗрдб 5.1 рдФрд░ 6.0 рд╡рд╛рд▓реЗ рд╕реИрдорд╕рдВрдЧ рдлреЛрди рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрдм рд╕реНрдерд╛рди рдореЛрдб "рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛" рдкрд░ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдмрд┐рдирд╛ рдЬреАрдкреАрдПрд╕ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рдШрд░ рдХреЗ рдЕрдВрджрд░ рд╣реЛрдиреЗ рдкрд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдУрдкреНрдкреЛ рдлреЛрди рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╛ "рд╣рд╛рдИ рдПрдХреНрдпреВрд░реЗрд╕реА" рдореЛрдб рдкрд░ рднреА рд╕реНрдкрд╖реНрдЯ рдЬреАрдкреАрдПрд╕ рд╕рд┐рдЧреНрдирд▓ рдХреЗ рд╕рд╛рде рдЖрдЙрдЯрдбреЛрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдЬрд▓реНрдж рд╣реА рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рд╕реБрдЭрд╛рдП рдЧрдП рдХреБрдЫ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛ред

@mrbarde рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдореИрдВ navigator.geolocation рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ред :)

@ рдЖрдИрд▓рд┐рдбрд▓ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ, рдмрд╕ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рдбрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдХреЛ navigator.geolocation рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рди рдХрд┐ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдПрдкреАред

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░, рдЖрдкрдХреЛ рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдУрдПрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рд╕реНрдерд╛рди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП navigator.getCurrentPosition() рдХреЙрд▓ рдХрд░рдирд╛ рдЕрднреА рднреА рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдБ рдПрдХ рдЬрд╛рд╡рд╛ рд╕реНрдирд┐рдкреЗрдЯ рджреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╣реИред checkIfLocationAvailable рдпрд╣ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред requestUserToActivateLocation рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдерд╛рди рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░реЗрдЧрд╛ред

package location;

import android.Manifest;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Intent;
import android.content.IntentSender;
import android.content.pm.PackageManager;
import android.location.Location;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.text.TextUtils;
import android.util.Log;

import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.PendingResult;
import com.google.android.gms.common.api.ResultCallback;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.location.LocationRequest;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.location.LocationSettingsRequest;
import com.google.android.gms.location.LocationSettingsResult;
import com.google.android.gms.location.LocationSettingsStates;
import com.google.android.gms.location.LocationSettingsStatusCodes;



/**
 * Created by nigelnindo on 11/28/16.
 */
public class LocationBridge extends ReactContextBaseJavaModule implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
    public LocationBridge(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    public GoogleApiClient googleApiClient;

    <strong i="10">@Override</strong>
    public String getName() {
        return "LocationBridge";
    }

    <strong i="11">@ReactMethod</strong>
    public void checkIfLocationAvailable(final Promise promise){

        int locationMode = 0;
        String locationProviders;
        boolean isAvailable = false;

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
            try {
                locationMode = Settings.Secure.getInt(getReactApplicationContext().getContentResolver(), Settings.Secure.LOCATION_MODE);
            } catch (Settings.SettingNotFoundException e) {
                e.printStackTrace();
            }

            isAvailable = (locationMode != Settings.Secure.LOCATION_MODE_OFF);
        } else {
            locationProviders = Settings.Secure.getString(getReactApplicationContext().getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
            isAvailable = !TextUtils.isEmpty(locationProviders);
        }

        boolean coarsePermissionCheck = (ContextCompat.checkSelfPermission(getReactApplicationContext(), Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED);
        boolean finePermissionCheck = (ContextCompat.checkSelfPermission(getReactApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED);

        boolean finalResult = (isAvailable && (coarsePermissionCheck || finePermissionCheck));

        Log.e("FINAL RESULT", Boolean.toString(finalResult));

        promise.resolve(Boolean.toString(finalResult));

    }

    <strong i="12">@ReactMethod</strong>
    public void requestUserToActivateLocation(final Promise promise){

        Log.e("LOCATION_BRIDGE:", "called activate location function");

        if (googleApiClient == null) {
            Log.e("LOCATION_BRIDGE: ", "googleApiClient is null");
            googleApiClient = new GoogleApiClient.Builder(getReactApplicationContext())
                    .addApi(LocationServices.API)
                    .addConnectionCallbacks(this)
                    .addOnConnectionFailedListener(this).build();
            googleApiClient.connect();
        }

        LocationRequest locationRequest = LocationRequest.create();
        locationRequest.setPriority(LocationRequest.PRIORITY_BALANCED_POWER_ACCURACY);
        locationRequest.setInterval(30 * 1000);
        locationRequest.setFastestInterval(5 * 1000);
        LocationSettingsRequest.Builder builder = new LocationSettingsRequest.Builder()
                .addLocationRequest(locationRequest);

        //**************************
        builder.setAlwaysShow(true); //this is the key ingredient
        //**************************

        Log.e("LOCATION_BRIDGE", "Created builder");

        PendingResult<LocationSettingsResult> result =
                LocationServices.SettingsApi.checkLocationSettings(googleApiClient, builder.build());
        result.setResultCallback(new ResultCallback<LocationSettingsResult>() {
            <strong i="13">@Override</strong>
            public void onResult(LocationSettingsResult result) {
                Log.e("LOCATION_BRIDGE: ", "onResult callback invoked");
                final Status status = result.getStatus();
                final LocationSettingsStates state = result.getLocationSettingsStates();
                switch (status.getStatusCode()) {
                    case LocationSettingsStatusCodes.SUCCESS:
                        Log.e("LOCATION_BRIDGE: ", "Location settings satisfied");
                        // All location settings are satisfied. The client can initialize location
                        // requests here.
                        promise.resolve("true");
                        break;
                    case LocationSettingsStatusCodes.RESOLUTION_REQUIRED:
                        Log.e("LOCATION_BRIDGE", "Location resolution required");
                        // Location settings are not satisfied. But could be fixed by showing the user
                        // a dialog.
                        try {
                            // Show the dialog by calling startResolutionForResult(),
                            // and check the result in onActivityResult().
                            status.startResolutionForResult(
                                    getCurrentActivity(), 1000);
                            promise.resolve("awaiting");
                        } catch (IntentSender.SendIntentException e) {
                            Log.e("LOCATION_BRIDGE", "could not send intent");
                            promise.reject("LOCATION_BRIDGE", "could not send intent");
                        }
                        break;
                    case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE:
                        Log.e("LOCATION_BRIDGE", "location settings are unavailable");
                        // Location settings are not satisfied. However, we have no way to fix the
                        // settings so we won't show the dialog.
                        promise.reject("LOCATION_BRIDGE", "settings change is not available");
                        break;
                }
            }
        });

    }

    <strong i="14">@Override</strong>
    public void onConnected(<strong i="15">@Nullable</strong> Bundle bundle) {
        Log.e("LOCATION_BRIDGE", "CONNECTED");
    }

    <strong i="16">@Override</strong>
    public void onConnectionSuspended(int i) {
        Log.e("LOCATION_BRIDGE", "SUSPENDED");
    }

    <strong i="17">@Override</strong>
    public void onConnectionFailed(<strong i="18">@NonNull</strong> ConnectionResult connectionResult) {
        Log.e("LOCATION_BRIDGE", "CONNECTION FAILED");
        Log.e("LOCATION_BRIDGE", connectionResult.toString());
        if (connectionResult.hasResolution()){
            try {
                connectionResult.startResolutionForResult(getCurrentActivity(), 1);
            } catch (IntentSender.SendIntentException e) {
                e.printStackTrace();
            }
        }
        else{
            Log.e("LOCATION_BRIDGE","CONNECTION FAILURE HAS NO RESOLUTION");
        }
    }
}

рдЬрдм рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рди рдирд╣реАрдВ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ compile 'com.google.android.gms:play-services-location:x.x.x' рдХреЛ рдЕрдкрдиреЗ app/build.gradle рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдФрд░ рдпрд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВред рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рдПрдирдкреАрдПрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИред

рд╣рд╛рдп @nigelnindo рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдореВрд▓ рдирд┐рд╡рд╛рд╕реА API рд╣реИ, рдЬрд┐рд╕реЗ Permissions рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░
рдЖрдк рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдРрдк рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдЕрдиреБрдорддрд┐ рд╕рдХреНрд╖рдо рдХрд░ рджреА рд╣реИ
рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╣реА рдореБрджреНрджрд╛ рдерд╛ рдЬреЛ рдЖрдкрдиреЗ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХрд┐рдпрд╛ рд╡рд╣ рдирд┐рдореНрди рдерд╛ред

рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХреА рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рд╕реНрдерд╛рди рдкрд░ рдРрдк рдПрдХреНрд╕реЗрд╕ рдХреА рдЕрдиреБрдорддрд┐ рджреА рд╣реИ

PermissionsAndroid
.check("android.permission.ACCESS_FINE_LOCATION")
.then((granted) => {
    if(granted){
        // do something
        return;
    }
    // do something else
}).catch((err) => {
    // handle error
});

рдФрд░ рдлрд┐рд░ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛, рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реЗ рдкреВрдЫреЗрдЧрд╛
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧред

PermissionsAndroid
.request("android.permission.ACCESS_FINE_LOCATION")
.then((resp) => {
    if(resp == "granted"){
        _self._watchLocation();
    }else{
        this.props.watchLocSuccess();
    }
    // set state
    _self.setState({
        requestLocation: false
    });
    // 
}).then((err) => {
    // handle error
});

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдЪрд╛рд▓ рдЪрд▓реА рдФрд░ рдЕрдм рдореБрдЭреЗ рдХреЛрдИ рд╕реНрдерд╛рди рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реА, рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХрд┐рд╕реА рдХреЛ рдорджрдж рдорд┐рд▓реЗрдЧреАред

рд╣рд╛рдп @ рдорд░реНрдмрд░реНрдб , рдмрд╕ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдКрдкрд░ рдХреЗ рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ PermissionsAndroid рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдЬреИрд╕рд╛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛:

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░, рдЖрдкрдХреЛ рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдУрдПрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗ рд╕реНрдерд╛рди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдЖрдкрдХреЗ рдРрдк рдореЗрдВ PermissionsAndroid рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдмрд╛рд░ рд╢реЙрд░реНрдЯрдХрдЯ рд╕реЗ рд╕реНрдерд╛рди рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдпрд╛ Settings -> Location -> Off getCurrentPosition() рдХреЙрд▓ рдЕрднреА рднреА рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЙрд╕ рдХрд┐рдирд╛рд░реЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред

рдЙрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ @nigelnindo yh рддреЛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛, рдХреНрдпрд╛ рдЖрдкрдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдкреАрдЖрд░ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ? рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА рдкреИрдХреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЬрд╛рд╡рд╛ рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рд╕реАрдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реЛред рдЕрдЧрд░ рдпрд╣ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рддреМрд░ рдкрд░ рд░рд┐рдПрдХреНрдЯ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛, рдореБрдЭреЗ рдЗрд╕ рддрд░рд╣ рдХреА рдореБрдЦреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рд╣реИ, рдореБрдЭреЗ рд╕реНрдерд┐рд░рддрд╛ рдХреА рдЪрд┐рдВрддрд╛ рд╣реИред

рдкрд░рд┐рд╡рд░реНрддрди (Android) targetSdkVersion рдкрд░ build.gradle (рдРрдкреНрд▓рд┐рдХреЗрд╢рди) 23 (16-22) рдХреЗ рддрд╣рдд рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЛред рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛!

рдХреНрдпреЛрдВрдХрд┐, рд╣рдореЗрдВ AndroidManifest рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рдЪрд╛рд╣рд┐рдПред рдФрд░ AndroidManifest рдлрд╝рд╛рдЗрд▓ рдХреЗрд╡рд▓ 23 (16-22) рдХреЗ рддрд╣рдд SDK рдореЗрдВ рдХреЙрд▓ рдХреА рдЬрд╛рддреА рд╣реИред

рдФрд░ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВ:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

рдЕрдзрд┐рдХрддрдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд╖реНрдЯ рди рдХрд░реЗрдВ!

рдпрджрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬреАрдкреАрдПрд╕ рдореЙрдбреНрдпреВрд▓ рдЕрдВрддрд┐рдо рдХреИрд╢реНрдб рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬрдм рддрдХ рдХрд┐ рдЙрдкрдЧреНрд░рд╣реЛрдВ рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреАред рдпрд╣ рдЖрдкрдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕реЗ рджреВрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдРрдк рдореЗрдВ рдХреИрд╢реНрдб рд╕реНрдерд┐рддрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред рдФрд░ рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рдЯреНрд░реИрдХ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рдХрдИ рдмрд┐рдВрджреБ рдЖрдкрдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рдХреА рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВред

@pavelpashkovsky рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ рджрд╛рд╡рд╛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрдереНрдп рдпрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджрд┐рдЦрд╛ рд╕рдХрддреЗ рд╣реИрдВ?

@ рдЧреНрд░реАрдХреЛрд▓реЛ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ 1 рд╕рдкреНрддрд╛рд╣ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рд╡рд┐рд╖рдп рдХреЛ рдкрд╛рдпрд╛ред

рдореЗрд░реЗ рдкрд╛рд╕ рд▓рдЧрднрдЧ 30 рдкрд░реАрдХреНрд╖рдг рдереЗред рдФрд░ рдореБрдЭреЗ рдкрд╣рд▓реЗ 1-5 рд╕реЗрдХрдВрдб рдореЗрдВ рдЧрд▓рдд рд╕реНрдерд┐рддрд┐ рд╡рд╛рд▓реЗ 3-4 рдорд╛рдорд▓реЗ рдорд┐рд▓реЗ (рдЬрдм рддрдХ рдХрд┐ рдЬреАрдкреАрдПрд╕ рдЙрдкрдЧреНрд░рд╣реЛрдВ рдХрд╛ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рдорд┐рд▓рд╛)

@pavelpashkovsky рдореИрдВ рдЕрдм рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ maximumAge: 1000 рдореЗрд░реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рд╣реИрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЬреИрд╕рд╛ рдХрд╣рд╛ рдерд╛, рдЙрд╕рдХреЗ рдкрд┐рдЫрд▓реЗ рд╕реНрдерд╛рди рдХреЛ рдХреИрд╢рд┐рдВрдЧ рдХрд░ рджрд┐рдпрд╛ред

@ рдлреЗреНрд░рдХреНрд╕рд▓реЛ рддреБрдо рд╕рд╣реА рд╣реЛред рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ GPS рдЕрдВрддрд┐рдо 1 рд╕реЗрдХрдВрдб рдХреА рд╕реНрдерд┐рддрд┐ рд░рдЦрддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдкрд░рд┐рдгрд╛рдо рдореБрдЭреЗ рдЕрдзрд┐рдХрддрдо рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛: 0 рдЬрдм gps рдХреЛрдИ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ (рдпрд╛ рдпрджрд┐ рдЙрдкрдЧреНрд░рд╣ рд╕реЗ рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИ) рддреЛ рддреНрд░реБрдЯрд┐ред

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЕрдзрд┐рдХрддрдо рд╣рдЯрд╛рдиреЗ рд╕реЗ рдУрдкреЛ рдлреЛрди рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рдкрд░ рднреА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдиреЗ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред

рдпрд╣ рд╕рдм рдореЗрд░реЗ рд╕рд╛рде рд╣реЛ рд░рд╣рд╛ рдерд╛ред рдореЗрд░реЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ App Info -> рдЕрдиреБрдорддрд┐рдпреЛрдВ рдореЗрдВ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реБрдЖ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдиреБрдорддрд┐ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рдХрд┐рд╕реА рдФрд░ рдХреЗ рдкрд╛рд╕ рднреА рдпрд╣ рдореБрджреНрджрд╛ рд╣реИ

рд╣рд╛рдп (рдореЗрд░реА рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ)ред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрддрдо рд╡реГрджреНрдзрд┐ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧреАред

рдЖрд░рдПрди 0.48 рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдбреЙрдХреНрдЯрд░:
рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдПрдкреАрдЖрдИ рд╡реЗрдм рд╕реНрдкреЗрд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ: https://developer.mozilla.org/en-US/docs/Web/API/Geolocation

рдФрд░ рдЗрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░:
https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions/enableHighAccuracy
рдФрд░
https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions/timeout
рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ :
https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions/maximumAge

рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ:
{enableHighAccuracy: true, timeout: 10000, maximumAge: 30000}

рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЬреАрдкреАрдПрд╕ рдЪрд┐рдк рдЙрдкрдЧреНрд░рд╣реЛрдВ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрд╡рдзрд┐ (10000 рдПрдордПрд╕) рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрдиреЗрдХреНрд╢рди рдХрд┐рд╕реА рднреА рддреНрд░реБрдЯрд┐ рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ @RoBYCoNTe рдиреЗ рдХрд╣рд╛: рдЬрд╛рд░реАрдХрд░рдг -реиреирежрел49режрек реп рек рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЬреАрдкреАрдПрд╕ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдлрд▓ рдпрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдЕрдзрд┐рдХрддрдо рдЖрдпреБ рдХреЗ рд╕рд╛рде рдПрдХ рдЬреЛ рдЗрд╕рдореЗрдВ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ рд╡рд┐рдХрд▓реНрдк (30000 рдПрдордПрд╕)ред рдпрджрд┐ рдХреЛрдИ рдЪреАрдЬ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЛрдб 3 рд╡рд┐рд╖рдп рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдордЖрдЙрдЯ (рдХрдо рд╕реЗ рдХрдо 25000 рдПрдордПрд╕) рдмрдврд╝рд╛рдирд╛ рдФрд░

{enableHighAccuracy: true, timeout: 25000, maximumAge: 3600000} рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛

_emulator config_: рдЯрд╛рдЗрдордЖрдЙрдЯ рдЕрд╡рдзрд┐ рдХреЗ рджреМрд░рд╛рди рдЖрдкрдХреЛ рдПрдореБрд▓реЗрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд▓реЛрдХреЗрд╢рди рдореЗрдиреВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд░реНрдЪреБрдЕрд▓ рд▓реЛрдХреЗрд╢рди рдХреА рдЬрд╛рдирдХрд╛рд░реА (рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░) рднреЗрдЬрдиреА рдЪрд╛рд╣рд┐рдПред (рдпрд╣ рдЙрдкрдЧреНрд░рд╣ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░реЗрдЧрд╛)

{ enableHighAccuracy: true, timeout: 60000, maximumAge: 1200 } рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рдореЗрд░реЗ рд▓рд┐рдП, рдпрд╣ рдЕрдзрд┐рдХрддрдо рдЙрдореНрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдерд╛, рдпрд╣ рдЙрд╕ рд╕рдордп рдХреА рд▓рдВрдмрд╛рдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдерд╛ред

(рдХреЗрд╡рд▓ Android)
рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИред
рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдиреЗрдЯрд┐рд╡ рдореЗрдВ, рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ:

  • highAccuracy рдХрд╛ рдЕрд░реНрде GPS рд╕реНрдерд╛рди рд╣реИ
  • рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░, рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ
  • maxAge рдЖрдкрдХреЛ рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдИ рд╕реНрдерд┐рддрд┐ рд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ (рдЬреЛ рдмреИрдЯрд░реА рдФрд░ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА рд╣реИ) рд▓реЗрдХрд┐рди рдПрдХ рдХреИрд╢реНрдб рд╕реНрдерд┐рддрд┐ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ

рдореВрд▓ рд░реВрдк рд╕реЗ рдЬреАрдкреАрдПрд╕ рдкреНрд░рджрд╛рддрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рджрд╛рддрд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдзреАрдорд╛ рд╣реИ рдФрд░ рдЕрднреНрдпрд╕реНрдд рд╣рдореЗрд╢рд╛ рдЖрдкрдХреЗ рд╕реНрдерд╛рди рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдпрджрд┐ рдЬреАрдкреАрдПрд╕ рдлреЛрди рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛)ред рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рджрд╛рддрд╛ рддреЗрдЬреА рд╕реЗ, рдЕрдзрд┐рдХ рд╕реБрд▓рдн рд╣реИ рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рдкрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдЯреАрдХрддрд╛ рдХрдо рд╣реИ (рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдореЗрд░реЗ рдкрд╛рд╕ 2000 рдореАрдЯрд░ рдерд╛)ред

рдЕрдЧрд░ рдЖрдкрдХреЛ рд╣рд╛рдИрдХреНрдпреВрд░реЗрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рдЬреАрдкреАрдПрд╕ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдФрд░ рд╕реНрдерд╛рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реИред рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рддреАрдХреНрд╖рд╛ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рджрд░реНрд╢рдХреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛, рд╕реНрдерд╛рди рдХреА рддреБрд▓рдирд╛ рдХреА рдФрд░ рд╣рдореЗрд╢рд╛ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░рд┐рдЯрд░реНрди рджрд┐рдпрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЖрд░рдПрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдпрд╛ рддреЛ рдЬреАрдкреАрдПрд╕ рдкреНрд░рджрд╛рддрд╛ рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рджрд╛рддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдХрд╛ рдПрдХ рдЯреНрд░реЗрдбрдСрдлрд╝ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдЗрд╕реЗ рдпрд╛ рддреЛ JS рдпрд╛ Native рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдорджрдж рдХреАред

рдХреЗрд╡рд▓ Android рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред

рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдорд╛рдорд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ рдХрд┐ рд╕реНрдерд╛рди рд╕рдХреНрд╖рдо рд╣реИ:

  • рдпрджрд┐ рдЖрдк рдЕрдкрдирд╛ рдРрдк рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд┐рдХрд▓реНрдк рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдиреНрдпрдерд╛ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
navigator.geolocation.getCurrentPosition(
    (position) => {
        this.setState({currentLocation: {lat: position.coords.latitude, lng: position.coords.longitude}})
    }, (error) => {
        alert("Geolocation error: "+error.message);
    },
    {enableHighAccuracy: true, timeout: 20000, maximumAge: 0}
);

рдореИрдВ рдРрдк рдкрд░ рдЕрдкрдирд╛ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд╛рди рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

  • рдпрджрд┐ рдЖрдк рдЕрд╕рд▓реА рдореЛрдмрд╛рдЗрд▓ рдлреЛрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдирд╛ рдРрдк рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд┐рдХрд▓реНрдк рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдЕрдиреНрдпрдерд╛ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
navigator.geolocation.getCurrentPosition(
    (position) => {
        this.setState({currentLocation: {lat: position.coords.latitude, lng: position.coords.longitude}})
    }, (error) => {
        alert("Geolocation error: "+error.message);
    }
);

рдЗрд╕рд╕реЗ рдЖрдкрдХрд╛ рдХрд░рдВрдЯ рд▓реЛрдХреЗрд╢рди рдорд┐рд▓ рдЬрд╛рдПрдЧрд╛

рд╣рдо рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ!

рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рднреА рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдЖ рд░рд╣рд╛ рд╣реИ?

рдореИрдВрдиреЗ рдХреБрдЫ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рдиреЛрдВ ( рдЙрджрд╛рд╣рд░рдг , рдЙрджрд╛рд╣рд░рдг , рдЙрджрд╛рд╣рд░рдг рдФрд░ рдЙрджрд╛рд╣рд░рдг ) рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рднреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдирд╣реАрдВ рдХреАред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдХрд╣рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдХрд┐ рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рдорд┐рд▓рд╛:

рдПрдкреНрд▓рд┐рдХреЗрд╢рди

  • Android 6.x
  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ 16.1.0
  • рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ 16.50.3

рдЙрдкрдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдп

рдореИрдВ рдЕрднреА рднреА Geolocation timed out, code 3 рддреНрд░реБрдЯрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ ...

рдХрд┐рд╕реА рдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛?

_Upateate_ (2017-11-13):

рдореИрдВрдиреЗ рдЗрд╕реЗ Settings >> Privacy >> Location >> Mode рд╕реЗ High accuracy рд╕реЗрдЯ рдХрд░рдХреЗ (рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдХрдо рд╕реЗ рдХрдо) рд╣рд▓ рдХрд┐рдпрд╛

рдирдорд╕реНрддреЗред
рдореБрдЭреЗ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛!
рдХреГрдкрдпрд╛ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдкрд╣рд▓реЗ рдкрдврд╝реЗрдВ: # рдЬрд╛рд░реАрдХрд░рдг -331830285

рдЙрдкрд╛рдп:
рдкрд╣рд▓реЗ navigator.geolocation.getCurrentPosition рд╕рд╛рде: {enableHighAccuracy: true, timeout: 60000, maximumAge: 0} рдХреЛ PositionOptions рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░реЗрдВ, рдЗрд╕рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧреАред
рдпрджрд┐ рдкрд┐рдЫрд▓рд╛ рдЕрдиреБрд░реЛрдз рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рддреЛ navigator.geolocation.getCurrentPosition рд╕рд╛рде рдХреЙрд▓ рдХрд░реЗрдВ: {enableHighAccuracy: false, timeout: 30000, maximumAge: 3600000} PositionOptions , рдпрд╣ рдХрдордмреИрдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдХ рджреЗрдЧрд╛ рдФрд░ _ (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ) _ рдХрднреА рднреА рд╕рдордп рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ!
рдирдореВрдирд╛ рдХреЛрдб:

const GeoHightAccuracy = () => {
  return new Promise((resolve, reject) => {
    navigator.geolocation.getCurrentPosition(
      (locHightAccuracy)=>{
        resolve(locHightAccuracy)
      },
      (error)=>{
        GeoLowAccuracy()
        .then((locLowAccuracy)=>{resolve(locLowAccuracy)})
        .catch((err)=>{reject(err)});
      },
      {enableHighAccuracy: true, timeout: 60000, maximumAge: 0}
    )
  });
};
const GeoLowAccuracy = () => {
  return new Promise((resolve, reject) => {
    navigator.geolocation.getCurrentPosition(
      (locLowAccuracy)=>{
        resolve(locLowAccuracy)
      },
      (error)=>{
        reject(error)
      },
      {enableHighAccuracy: false, timeout: 15000, maximumAge: 3600000}
    )
  });
};



md5-4cb745c8e66bae2435e8bf78ce42a9c0



GeoHightAccuracy()
.then(locationData => console.log(locationData))
.catch(error => console.log(error));

рдЙрдкрдпреЛрдЧреА рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред

рдореИрдВ рдпрд╣рд╛рдБ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБ!
рдореИрдВ рдЕрдкрдиреЗ Android рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП navigator.geolocation рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рддрдп рдирд╣реАрдВ рд╣реИ, рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдКрдкрд░ рдореЗрд░реА рдкреЛрд╕реНрдЯ рдкрдврд╝реЗрдВред

@Rewieer , рдЖрдкрдХреЗ рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдореИрдВ рдЕрдкрдиреЗ рдРрдк рдкрд░ navigator.geolocation рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

var options = {
  enableHighAccuracy: true,
  timeout: 5000,
  maximumAge: 5000
};

function success(pos) {
  var crd = pos.coords;
  alert(crd.latitude + " " + crd.longitude);
};

function error(err) {
  alert('ERROR(' + err.code + '): ' + err.message);
};

navigator.geolocation.getCurrentPosition(success, error, options);

рдореБрдЭреЗ рд╣рдореЗрд╢рд╛ ERROR(3): Location request timed out ред
рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╣рд░ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдореИрдВ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдиреАрд▓рд╛ рдмрд┐рдВрджреБ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ GPS рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдпрд╛ рдиреЗрд╡рд┐рдЧреЗрдЯрд░ рдирд╣реАрдВ рд▓реЗ рд╕рдХрддрд╛ рд╣реВрдВред

рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ:

  • рдЦрд░рд╛рдм рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ / рдлреЛрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
  • рдЬреАрдкреАрдПрд╕ рд╕реЗ рдврдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд╣реАрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдмрдбрд╝реА рдЗрдорд╛рд░рддреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╛ рдЗрдорд╛рд░рддреЛрдВ рдореЗрдВ рдЦрд░рд╛рдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)
  • рд╕рдордп рдмрд╣реБрдд рдЬрд▓реНрджреА

рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЗрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдмрд┐рдирд╛ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА? (рдпрд╣ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛)

рдореИрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ Android рдбрд┐рд╡рд╛рдЗрд╕ (рд╕рдВрд╕реНрдХрд░рдг 5.1) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдирдХреНрд╢реЗ (рдореЗрд░реЗ рдРрдк рдХреЗ рдЕрдВрджрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рд╕рд╣реА рдиреАрд▓реЗ рдмрд┐рдВрджреБ рд╕реНрдерд┐рддрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ + рдореИрдВ Google рдорд╛рдирдЪрд┐рддреНрд░ рдРрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рдФрд░ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ (рдЬреАрдкреАрдПрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реВрдВ) рдкрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВ рдПрдХ рдмрдбрд╝реЗ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╕рддреНрдп рдФрд░ рдЕрд╕рддреНрдп рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░реЗрдВ, рд╡рд┐рдХрд▓реНрдк рд╣рдЯрд╛рдПрдВ ... рдЖрджрд┐ред рд╕рднреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрдЯрд░.рдЬреЙрд▓реЛрдХреЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗред

рдХреНрдпрд╛ рдЖрдкрдХреЛ рджреЗрд╢реА рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдЕрдкрдиреЗ рд╣рд╛рде рдЧрдВрджреЗ рдорд┐рд▓реЗ?

2017-11-16 15:19 GMT + 01: 00 рдмреИрдбреНрд╕ рдорд░реНрдмреЗрдЯ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com:

рдореИрдВ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ Android рдбрд┐рд╡рд╛рдЗрд╕ (рд╕рдВрд╕реНрдХрд░рдг 5.1) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдирдХреНрд╢реЗ (рд╕рд╣реА рдиреАрд▓рд╛) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ
рдореЗрд░реЗ рдРрдк рдХреЗ рдЕрдВрджрд░ рдорд╛рдирдЪрд┐рддреНрд░ рдкрд░ рдмрд┐рдВрджреБ рд╕реНрдерд┐рддрд┐) + рдореИрдВ Google рдореИрдкреНрд╕ рдРрдк рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ
рдореЗрд░реА рд╕реНрдерд┐рддрд┐ рдкрд░ рдЬрд╛рдПрдВ (GPS рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред
рдореИрдВ рдПрдХ рдмрдбрд╝реЗ рд╕рдордп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рд╕рддреНрдп рдФрд░ рдЕрд╕рддреНрдп рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рд╡рд┐рдХрд▓реНрдк рд╣рдЯрд╛рдПрдВ ... рдЖрджрд┐ред рд╕рднреА рдиреЗрд╡реАрдЧреЗрдЯрд░ рдкрд╛рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗ
рдбреЗрдЯрд╛ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рдЙрддреНрддрд░ рд╕реАрдзреЗ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/facebook/react-native/issues/7495#issuecomment-344935653 ,
рдпрд╛ рдзрд╛рдЧрд╛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/ALuPm5XL1tNLCniOMR4YAMI4ZC2fKxrsks5s3ESBgaJpZM4Ibete
ред

рд╣рд╛рдВ @Rewieer , рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдЦрд░рд╛рдм рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИред

рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рд╣рдореЗрдВ рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗ рдкрд╣рд▓реЗ рдПрдореБрд▓реЗрдЯрд░ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдХреНрд╖рд╛рдВрд╢ рдФрд░ рджреЗрд╢рд╛рдВрддрд░ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдП!

рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди # рдЬрд╛рд░реАрдХрд░рдг -331830285 рдкрд╣рд▓реЗ рдЬреАрдкреАрдПрд╕ рдФрд░ рд╕реИрдЯреЗрд▓рд╛рдЗрдЯ рдХрдиреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЕрдиреБрд░реЛрдз (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддреНрд░реБрдЯрд┐ рдкрд░) рд╕рдордпрдмрджреНрдзрддрд╛ рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред

@Rewieer рдореИрдВрдиреЗ рдХрднреА рдПрдВрдбреНрд░реЙрдЗрдб рджреЗрд╢реА рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдореИрдВ рдХреЗрд╡рд▓ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

@ рдкреНрд░рддрд┐рд╡рд╛рдж рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдХреЛрдб рдФрд░ рддреНрд░реБрдЯрд┐ рд▓реЙрдЧ рднреЗрдЬреЗрдВред

@badis
рдЖрд░рдПрди рдбреЙрдХреНрдЯрд░:
рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдРрдк рдХреЗ AndroidManifest.xml рдкрд░ рдирд┐рдореНрди рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рдЖрдкрдХреЛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореВрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рдЯреНрд╕ рдХреЛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдПрдВ рдореЗрд░реЗ рд▓рд┐рдП рд░рд┐рдПрдХреНрдЯ-рдиреЗрдЯрд┐рд╡ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдлреА рд╣реЛрддреА рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рд╡рд╛рд░) рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдПрдХ рд╕рдиреНрдирд┐рдХрдЯрди рд▓рд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬреАрдкреАрдПрд╕ рдЖрдкрдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдЖрд╕-рдкрд╛рд╕ рдХреЗ рдЙрдкрдЧреНрд░рд╣реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХреБрдЫ рд╕рдордп рд▓реЗ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрдерд╛рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдХреЛрдИ рд╕реИрди рдлреНрд░рд╛рдВрд╕рд┐рд╕реНрдХреЛ рдореЗрдВ рдирд╣реАрдВ рд░рд╣рддрд╛ рд╣реИ :)

@ рд░реЗрд╡реАрд░
рдпрд╣рд╛рдВ рдПрдХ рдбреЗрдореЛ рдХреЛрдб рд╣реИ рдЬрд╣рд╛рдВ рдореИрдВ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ: https://github.com/badis/mobile-react-native
рдорд╛рдирдЪрд┐рддреНрд░ рдкреГрд╖реНрда рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдб рд╕рд╣реА рд╣реИ рдФрд░ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЙрд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдЕрдкрдиреА рддрд░рдл рд╕реЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рдореЗрд░реА рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рд▓реЛрдХреЗрд╢рди рдореЗрдВ рд╣реИред

рдЖрдк рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж !

@badis рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рдРрдк рдХреЗ AndroidManifest.xml рдореЗрдВ <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> рдЬреЛрдбрд╝рд╛ рд╣реИ?

@ рдХрдмрд╛рдбрд╝рд┐рдпреЛрдВ рдХрд╛ рдХрд▓ рднреА рдпрд╣реА рдореБрджреНрджрд╛ рдерд╛ред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЕрдЧрд░ рдЖрдк рдмрд╕ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ (рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдпрд╣ рдЖрджрд░реНрд╢ рд╣реИ) рдЬреИрд╕рд╛ рдХрд┐ https://github.com/facebook/react-native/issues/7495#issuecomment -228730196 рдореЗрдВ рд╕реБрдЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ

Android рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдХрд▓реНрдк рдХреНрдпрд╛ рд╣реИрдВ? рд╢рд╛рдпрдж рдЬреЛ рдЗрд╕ рдПрдХ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХреЗ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЗрди рдЪреВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рд╕реНрдерд╛рди рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдХреЗ

{
enableHighAccuracy: false, // GPS рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ
maxAge: Double.POSITIVE_INFINITY, // рдХрд┐рд╕реА рднреА рдХреИрд╢реНрдб рд╕реНрдерд╛рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ
рд╕рдордп рд╕рдорд╛рдкреНрдд: Long.MAX_VALUE,
рджреВрд░реА рдХреА рджреВрд░реА: 100
}

рд╕рд╛рде рд╣реА рд╣рдо рдПрдХ рд╣реА рд╕реНрдерд╛рди рдХреА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, 'рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛' рдФрд░ 'рдмреИрдЯрд░реА рд╕реЗрд╡рд┐рдВрдЧ' рдореЛрдб рдХреЗ рд▓рд┐рдП 3 рд╡рд┐рдХрд▓реНрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛рдо рдЕрдХреНрд╖рдо рдХрд░рдирд╛ред рдлрд┐рд░ рднреА рдбрд┐рд╡рд╛рдЗрд╕ рд╣рд░ рдмрд╛рд░ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдореЛрдб рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рд╕рдЪ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдорддрд╛ред

рдХреНрдпрд╛ рдпрд╣ рдмрд╛рдд FusedLocationProviderClient рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░

3 рд╡рд┐рдХрд▓реНрдк рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ 'рд╣рд╛рдИ рдПрдХреНрдпреВрд░реЗрд╕реА' рдФрд░ 'рдмреИрдЯрд░реА рд╕реЗрд╡рд┐рдВрдЧ' рдореЛрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@mkpietrzyk рддреЛ options рдХреЛ рдЗрди рджреЛ рдореЛрдбреЛрдВ рдореЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣рд▓ рдХрд░ рд░рд╣рд╛ рд╣реИ?

@natterstefan

рд╣рд╛рдБ, рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ ... рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдРрдк рдХреЗ рд▓рд┐рдП рдЕрдирдВрдд рдЯрд╛рдЗрдордЖрдЙрдЯ рдФрд░ рдореИрдХреНрд╕рд┐рдордо рдкрд╛рд╕ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕реЗ рдореИрдВ рдПрдХ рдРрдкреНрдкрд┐рд▓рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛рдВ рд╣реИрдВред

рдпрд╣рд╛рдБ @hoorsa рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ gps рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдлрд┐рд░ рднреА рдпрд╣ рдЬреАрдкреАрдПрд╕ рдХреЗ рд▓рд┐рдП рд╡реИрд╕реЗ рднреА рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдЙрдЪреНрдЪрддрд╛ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ... рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рд╣реЗ, рдереЛрдбрд╝реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдореБрдЭреЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рдЙрдЪреНрдЪ рд░рд╛рд╢рд┐ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдордЖрдЙрдЯ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЬрд▓реНрдж рд╣реА рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдкрд╣рд▓реЗ рдРрдк рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЖрдзреЗ рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ рд▓реЙрдЧ рдЗрди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдареАрдХ рд╕реНрдерд╛рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд╛рдиреНрдп рд╣реИред рдареАрдХ рд╕реНрдерд╛рди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗрд╡рд▓ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде / рдмрд┐рдирд╛ рдЖрдЬрд╝рдорд╛рдпрд╛ рд╣реИред рдмрд┐рдирд╛ рдХрд┐рд╕реА рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдк рдХреЗ рднреА, рдпрд╣ рдЕрднреА рднреА рдХрднреА-рдХрднреА рд╕реНрдерд╛рди рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣реЗрдЧрд╛ред рдкрд░реАрдХреНрд╖рдг рд╡рди рдкреНрд▓рд╕ рд╡рди рдкрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛

рдореИрдВ рднреА рдЗрд╕ рд╕рдордпрдмрд╛рд╣реНрдп рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБред

рдЖрд░рдПрди .50.3

рдХреЛрд╢рд┐рд╢ рдХреА, рдЕрдзрд┐рдХрддрдо рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдФрд░ рдмрд┐рдирд╛ рдПрдкреАрдЖрдИ рдХреЙрд▓рд┐рдВрдЧ:

{enableHighAccuracy: рд╕рдЪ, рдЯрд╛рдЗрдордЖрдЙрдЯ: 10000},

рдореИрдВ рдЗрд╕ рдХреЙрд▓ рдХреЛ рдЕрдиреБрдорддрд┐ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде рднреА рд▓рдкреЗрдЯ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рди рд╣реЛ:

PermissionsAndroid.request (
PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,

рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдореЛрдб рд╕рдХреНрд╖рдо рд╣реИред
рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ рд╕рд╣реА рдЕрдиреБрдорддрд┐ рд╣реИред

рдореЗрд░реА рдЧреИрд▓реЗрдХреНрд╕реА рдПрд╕ 7 рдкрд░ - рдпрд╣ рдПрдХ рд╕реНрдерд╛рди рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИред
рдореЗрд░реЗ Pixel 2 рдкрд░ - рдпрд╣ 10 рд╕реЗрдХрдВрдб рдХреЗ рд╕рдордп рдХреЗ рдмрд╛рдж рдЙрд╕ рд╕реНрдерд╛рди рдкрд░ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рдЬреАрдкреАрдПрд╕ рд╕рд┐рдЧреНрдирд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдПрдореБрд▓реЗрдЯрд░ рдкрд░ - рдпрд╣ 10 рд╕реЗрдХрдВрдб рдХреЗ рдЯрд╛рдЗрдордЖрдЙрдЯ UNLESS рдХреЗ рдмрд╛рдж рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдкрд░ рд╕реНрдерд╛рди рдЯреИрдм рдкрд░ рдЬрд╛рддрд╛ рд╣реВрдВ рдФрд░ рд╕реНрдерд╛рди рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП SEND рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВред

рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ navigator.geolocation.getCurrentPosition рддрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдХреЛрдИ рдЕрдиреНрдп рд╕реНрдерд╛рди рд╕реЗ рдкреВрд░реНрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХрд┐рд╕реА рдЕрдиреНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реЗ рдХреИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕реНрдерд╛рди рд╣реЛрдиреЗ рдкрд░ рднреА рдХреЛрдИ gps рд╕рдВрдХреЗрдд рди рд╣реЛред

рдореИрдВ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдлрд┐рд░ рдХреЛрдИ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрд╕рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдмрд╣реБрдд рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдЬреИрд╕реЗ @olieidel рдиреЗ рдХрд┐рдпрд╛ рд╣реИред

рдореБрдЭреЗ @jacksontbryan рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди getCurrentPosition рдХреИрд╢реНрдб рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдпрджрд┐ maximumAge рдЫреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдЧреИрд▓реЗрдХреНрд╕реА рдПрд╕ 7 рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдПрд▓рдЬреА рдЬреА 6 рдкрд░ рдирд╣реАрдВред рдПрд▓рдЬреА рдкрд░ рдпрд╣ рд▓рдЧрднрдЧ рд╣рд░ рд╕рдордп рдмрд╛рд╣рд░ рд░рд╣рддрд╛ рд╣реИ, рдЕрдЧрд░ рдореИрдХреНрд╕рд┐рдордо рд╕реЗрдЯ рд╣реЛ рдЬрд╛рдПред рдпрджрд┐ рдореИрдХреНрд╕рд┐рдордо рд╕реЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдПрдХ рдкреБрд░рд╛рдиреЗ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╡рд┐рдХрд▓реНрдк рддрд░реНрдХ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рд╕рднреА рдХреЛ рд╕реНрдерд┐рд░ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рд╕реНрд╡рдпрдВ рдХреЗ рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рдЖрдкрдХреЛ рдЬреАрдкреАрдПрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдорд┐рд▓реЗрдЧрд╛ рдФрд░ рдЕрдкрдиреЗ рдРрдк рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

    public Location getBestLastKnownPosition(Context context) {
        LocationManager locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
        List<String> providers = locationManager.getProviders(true);
        Location bestLocation = null;
        for (String provider : providers) {
            Location l = locationManager.getLastKnownLocation(provider);
            if (l == null) {
                continue;
            }
            if (bestLocation == null || l.getAccuracy() < bestLocation.getAccuracy()) {
                // Found best last known location: %s", l);
                bestLocation = l;
            }
        }

        if (bestLocation == null) {
            locationManager.requestSingleUpdate(new Criteria(), this, null);
        }
        return bestLocation;
    }

    private static WritableMap locationToMap(Location location) {
        WritableMap map = Arguments.createMap();
        WritableMap coords = Arguments.createMap();
        coords.putDouble("latitude", location.getLatitude());
        coords.putDouble("longitude", location.getLongitude());
        coords.putDouble("altitude", location.getAltitude());
        coords.putDouble("accuracy", location.getAccuracy());
        coords.putDouble("heading", location.getBearing());
        coords.putDouble("speed", location.getSpeed());
        map.putMap("coords", coords);
        map.putDouble("timestamp", location.getTime());
        map.putString("provider", location.getProvider());

        if (android.os.Build.VERSION.SDK_INT >= 18) {
            map.putBoolean("mocked", location.isFromMockProvider());
        }

        return map;
    }

    <strong i="6">@ReactMethod</strong>
    public void getCurrentPosition(Callback successCallback, Callback errorCallback){
        Location l = getBestLastKnownPosition(this.getReactApplicationContext());
        if (l == null){
            errorCallback.invoke("Failed to retrieve current location");
            return;
        }
        successCallback.invoke(locationToMap(l));
    }

    private static class LocationOptions {
        private final long timeout;
        private final double maximumAge;
        private final boolean highAccuracy;
        private final float distanceFilter;

        private LocationOptions(
                long timeout,
                double maximumAge,
                boolean highAccuracy,
                float distanceFilter) {
            this.timeout = timeout;
            this.maximumAge = maximumAge;
            this.highAccuracy = highAccuracy;
            this.distanceFilter = distanceFilter;
        }

        private static LocationOptions fromReactMap(ReadableMap map) {
            // precision might be dropped on timeout (double -> int conversion), but that's OK
            long timeout =
                    map.hasKey("timeout") ? (long) map.getDouble("timeout") : Long.MAX_VALUE;
            double maximumAge =
                    map.hasKey("maximumAge") ? map.getDouble("maximumAge") : Double.POSITIVE_INFINITY;
            boolean highAccuracy =
                    map.hasKey("enableHighAccuracy") && map.getBoolean("enableHighAccuracy");
            float distanceFilter = map.hasKey("distanceFilter") ?
                    (float) map.getDouble("distanceFilter") :
                    10;

            return new LocationOptions(timeout, maximumAge, highAccuracy, distanceFilter);
        }
    }

    <strong i="7">@ReactMethod</strong>
    public void watchPosition(ReadableMap options, Callback successCallback, Callback errorCallback){
        LocationOptions opts = LocationOptions.fromReactMap(options);
        LocationManager locationManager = (LocationManager)this.getReactApplicationContext().getSystemService(Context.LOCATION_SERVICE);
        Criteria criteria = new Criteria();
        if (opts.highAccuracy) {
            criteria.setAccuracy(Criteria.ACCURACY_FINE);
        }
        String bestProvider = locationManager.getBestProvider(criteria, true);

        locationManager.requestLocationUpdates(bestProvider, 1000, opts.distanceFilter, this);
    }

    <strong i="8">@Override</strong>
    public void onLocationChanged(Location location) {
        if (location == null) return;

        this.getReactApplicationContext()
                .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
                .emit("locationChanged", locationToMap(location));
    }

@Buthrakaur рдореИрдВ рдЖрдкрдХреЗ рд╕реНрдирд┐рдкреЗрдЯ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рд▓реНрдб рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рд╛ред рдореИрдВрдиреЗ рдЕрдкрдирд╛ gist https://gist.github.com/pewh/1fd64c8f0b3797ef2b7a7046b5a5f974 рдкреЛрд╕реНрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЖрд╢рд╛ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрдИ рдореЗрд░реЗ рдЬрд┐рд╕реНрдЯ рдкрд░ рд╕рдВрд╢реЛрдзрди рдХрд░рдиреЗ рдХреА рдХреГрдкрд╛ рдХрд░реЗред рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдореЗрд░реА рдХреНрд░рд┐рд╕рдорд╕!

рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рдХрд▓реНрдк рдХреЗ navigator.geolocation.getCurrentPosition рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред рдореИрдВ рдХреЗрд╡рд▓ рд╕рдлрд▓рддрд╛ рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЙрд▓рдмреИрдХ рдкрд╛рд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдПрдВрдбреНрд░реЙрдЗрдб 5.1 рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред

@ginex рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдбреЗрдЯрд╛ рдирдпрд╛ рд╣реИ? рдЬрдм рдореИрдВ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдХрднреА-рдХрднреА рдкреБрд░рд╛рдиреЗ рдбреЗрдЯрд╛ рдорд┐рд▓рддреЗ рд╣реИрдВред (рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рд╡рд╣реАрдВ рд╣реВрдВ рдЬрд╣рд╛рдВ рдореИрдВ рдПрдХ рдШрдВрдЯреЗ рдкрд╣рд▓реЗ рдерд╛)ред

рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП!

рдирдорд╕реНрддреЗ

рдореИрдВ рднреА рдЗрд╕реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореБрдЭреЗ рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЯрд╛рдЗрдордЖрдЙрдЯ рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИред рдореИрдВрдиреЗ 2 рд╕реЗрдХрдВрдб рд╕реЗ 10 рдорд┐рдирдЯ рддрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдмрдврд╝рд╛рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 10 рдорд┐рдирдЯ рддрдХ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛, рдпрд╣ рд╕рд┐рд░реНрдл рдореБрдЭреЗ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИред

рдореИрдВрдиреЗ рднреА enableHighAccuracy: false рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореИрдВ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ (рдбрд┐рд╡рд╛рдЗрд╕ рдореЛрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░)ред

рдореИрдВрдиреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд┐рдП рдмрд┐рдирд╛ рднреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИред рдореИрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ, рд▓реЗрдХрд┐рди рдбрд┐рд╡рд╛рдЗрд╕ рдореЛрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░ред

рдореИрдВрдиреЗ рднреА рдореИрдХреНрд╕рд┐рдордо рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрдИ рдирддреАрдЬрд╛ рдирд╣реАрдВ рдирд┐рдХрд▓рд╛ред
рдпрд╣ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ-

getCurrentPosition () {
navigator.geolocation.getCurrentPosition (
(рд╕реНрдерд┐рддрд┐) => {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ');
this.location = {
рджреЗрд╢рд╛рдВрддрд░: position.coords.longitude,
рдЕрдХреНрд╖рд╛рдВрд╢: position.coords.latitude,
рддреНрд░реБрдЯрд┐: рдЕрд╢рдХреНрдд,
};
},
(рддреНрд░реБрдЯрд┐) => {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ('рдкреЛрдЬрд┐рд╢рди рдПрд░рд░', рдПрд░рд░);
this.location = {
рджреЗрд╢рд╛рдВрддрд░: рдЕрд╢рдХреНрдд,
рдЕрдХреНрд╖рд╛рдВрд╢: рдЕрд╢рдХреНрдд,
рддреНрд░реБрдЯрд┐: error.message,
};
},
{
рд╕рдХреНрд╖рдо рдХрд░реЗрдВ: рд╕рдЪ,
рдЯрд╛рдЗрдордЖрдЙрдЯ: 600000
},
);
}

рдЕрдЧрд░ рдЖрдк рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╕реНрдХрд┐рдкрдкрд╛рдЗрдореНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рдФрд░ рдЬрд┐рдпреЛрдХреНрд▓реЛрд▓реЗрд╢рди рд╕рдордп рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ - # 17487 рджреЗрдЦреЗрдВ

рдирдорд╕реНрддреЗ

@ngandhy - рдирд╣реАрдВ, рдореИрдВ 'SkipPermissionRequests' рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: рдпрд╣ рд╕рдЪ рд╣реИред рдФрд░ minSdkVersion 16 рд╣реИ

рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдк рд╕рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реА рдореБрджреНрджреЗ рд╣реИрдВ, рд╣рд░ рд╕рдВрдпреЛрдЬрди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреЛ рд▓реЛрдЧ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдкреГрд╖реНрдарднреВрдорд┐-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╣рдо рд╕рд╣реЗрдЬреЗ рдЧрдП рд╕реНрдерд╛рди рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬреАрдкреАрдПрд╕ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдпреЗ рд╕реНрдерд╛рди рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рд╕рдЯреАрдХ рд╣реЛрдВрдЧреЗред

@badis
рдЖрдкрдХреЗ рд╕рдорд╛рдзрд╛рди рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ - рдзрдиреНрдпрд╡рд╛рдж!

рдлрд┐рдХреНрд╕ рд╕реЗ рдкрд╣рд▓реЗ рдореЗрд░рд╛ рддрд░реАрдХрд╛:

getUserLocationHandler() { navigator.geolocation.getCurrentPosition(position => { console.log(position.coords.latitude, position.coords.longitude); }, err => { console.log(err); } }

рдЖрдкрдХреЗ рдареАрдХ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░рд╛ рддрд░реАрдХрд╛:

getUserLocationHandler() { navigator.geolocation.getCurrentPosition(position => { console.log(position.coords.latitude, position.coords.longitude); }, err => { console.log(err); }, {enableHighAccuracy: false, timeout: 15000, maximumAge: 3600000}); }

рдореИрдВ рд╕рд┐рд░реНрдл рдЗрд╕ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
https://www.abidibo.net/blog/2017/11/23/geolocation-react-native/

рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣реИ, рдХрд┐рд╕реА рдХреЛ рднреА рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓ рдЧрдпрд╛?

рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдПрдХрдорд╛рддреНрд░ "рд╕рдорд╛рдзрд╛рди" рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рд╣реИ "enableHighAccuracy" рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ред рдЗрд╕рдХреЗ рд╕рд╛рде рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рддрдм рдЖрдкрдХреЗ рд╕реНрдерд╛рди рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреАрдкреАрдПрд╕ рдХреЗ рдмрдЬрд╛рдп рдЖрдкрдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рдЯреАрдХрддрд╛ рдХрд╛ рдПрдХ рдЯрди рдЦреЛ рджреЗрддрд╛ рд╣реИред

рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рдиреЛрдВ рдореЗрдВ рд╕реЗ рдХрдИ рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рдХреИрд╢реНрдб рд╕реНрдерд┐рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдлреЛрди рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдирд╛ рдРрдк рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рднреА рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдЬ, рдореБрдЭреЗ рдпрд╣ рдкреИрдХреЗрдЬ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП Google рдХреЗ рдлрд╝реНрдпреВрдЬрд╝ рдХрд┐рдП рдЧрдП рд╕реНрдерд╛рди API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ iOS рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ (рдореИрдВ рдЗрд╕ рдкреИрдХреЗрдЬ рдХрд╛ рд▓реЗрдЦрдХ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рдпрд╢ рджреЗрддрд╛ рд╣реВрдВ):

https://www.npmjs.com/package/react-native-geolocation-service

рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдЗрд╕реЗ рдЕрднреА рддрдХ рдереЛрдбрд╝рд╛ рд╕рд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

@globetro рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрд╛рд╣рд░ рдХреА рдЬрд╛рдБрдЪ рдХреА, рдФрд░ рдареАрдХ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ!

@globetro рдзрдиреНрдпрд╡рд╛рджред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди-рд╕реЗрд╡рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рд╣реИред

@globetro рдореБрдЭреЗ рднреА рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛ рдорд┐рд▓реАред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рдореЗрдВ рд╡рд┐рд▓рдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП!

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди-рд╕реЗрд╡рд╛ рдореЗрд░реА рдорджрдж рдирд╣реАрдВ рдХрд░рддреА рд╣реИ :(

рдзрдиреНрдпрд╡рд╛рдж @globetro рдкреИрдХреЗрдЬ * рд░рд┐рдПрдХреНрдЯ-рджреЗрд╢реА-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди-рд╕рд░реНрд╡рд┐рд╕ * рдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдореВрд▓ рдореЗрдВ рдореВрд▓ рдШрдЯрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реИред

рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛ рд╕реНрдерд╛рди рд╢реНрд░реЛрддрд╛рдУрдВ (рдЬреЛ рдХрд┐ рдорд╣рдВрдЧреЗ рд╣реИрдВ), рдПрдХ рдЬреЛ рдЙрдЪреНрдЪрддрд╛ рдФрд░ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рддрдм рдЖрдк рддреБрд▓рдирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ 'рд╡рд░реНрддрдорд╛рди' рд╕реНрдерд╛рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдФрд░ рдирдпрд╛ рд╣реИред


рдпрд╣ рдПрдХ 'рдЕрд╕реНрдерд╛рдпреА' рд╕рдорд╛рдзрд╛рди рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд░рдПрди рдкрдХреНрд╖ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ COARSE рдФрд░ FINE рдЕрдиреБрдорддрд┐рдпреЛрдВ рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ HighAccuracy рд╕рдХреНрд╖рдо рд╣реИред

рдореИрдВрдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛, рдпрд╣рд╛рдБ рдПрдХ рд╡рд╛рджрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдШрдЯрдХ рд╣реИ:
https://gist.github.com/a3diti/5466f7309752cbb2e63ecefff6365bb9
Android рдореЗрдВ рдореИрдВрдиреЗ maximumAge рдирд┐рдХрд╛рд▓реЗ, рдореИрдВрдиреЗ enableHighAccuracy рд╕реЗ true , рдФрд░ RN PermissionsAndroid рдШрдЯрдХ рд╕реЗ рдПрдХ рдЕрдиреБрдорддрд┐ рдЪреЗрдХ рдЬреЛрдбрд╝рд╛ред

@ a3diti рдХреНрдпрд╛ рдЖрдкрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ? рд╕реНрдерд╛рди рдХреЛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

@ a3diti рдЬрдм рддрдХ рдЙрдиреНрд╣реЛрдВрдиреЗ рдирд╡реАрдирддрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдХреБрдЫ рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛, рддрдм рддрдХ

рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ https://www.npmjs.com/package/react-native-geolocation-service рдХреЛ рдХреЛрд░ рдореЗрдВ рдорд░реНрдЬ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

рдореИрдВ рдЙрд╕реА "рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рдЯрд╛рдЗрдо рдЖрдЙрдЯ рдЗрд╢реНрдпреВ" рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЖрд░рдПрдВрдбрдбреА рдХреЗ рдмрд╛рдж рдореИрдВ "рд░рд┐рдмреВрдЯ" рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рдЙрд╕рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рд▓реЛрдХреЗрд╢рди рдорд┐рд▓ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЙрд╕рдХрд╛ рдХрд╛рдо рдареАрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдореЗрд░рд╛ рдХреЛрдб рдЬрд╛рдВрдЪреЗрдВред

рдШрдЯрдХрдбрд┐рдорд╛рдЙрдВрдЯ = () => {
navigator.geolocation.getCurrentPosition (
(рд╕реНрдерд┐рддрд┐) => {
const initialPosition = JSON.stringify (рд╕реНрдерд┐рддрд┐);
this.setState ({initialPosition});
},
(рддреНрд░реБрдЯрд┐) => рдЕрд▓рд░реНрдЯ (error.message),
{enableHighAccuracy: false, timeout: 20000, maxAge: 1000, DistanceFilter: 1}

  );
  this.watchID = navigator.geolocation.watchPosition((position) => {
     const lastPosition = JSON.stringify(position);
     this.setState({ lastPosition });
     Alert.alert("Location change",lastPosition);

  });

}

рдХрд┐рд╕реА рднреА рдХрд╛рд░рдг рд╕реЗ рд▓реЛрдЧ рдЕрднреА рднреА рдЗрд╕рд╕реЗ рдЬреВрдЭ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ

https://www.npmjs.com/package/react-native-geolocation-service

рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдерд╛? рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ?

AndroidManifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЗрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

рд╣реЗ рд▓реЛрдЧреЛрдВ,

рдореИрдВрдиреЗ @globetro рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди-рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдореЗрд░рд╛ рдРрдк рддреБрд░рдВрдд рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛ред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

@ рдкреИрдЯреНрд░рд┐рдХ-рдмрд╛рдпрд░ рдореИрдВ рдЗрд╕реЗ Google Play рдкрд░ рдЕрдкрдиреЗ рдРрдк рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд╣рд╛рдВ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд╡рд┐рдХрд╛рд╕ рд╕рдВрд╕реНрдХрд░рдг рдЕрдм рдЕрдЬреНрдЮрд╛рдд рдХрд╛рд░рдг рд╕реЗ рддреБрд░рдВрдд рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди-рд╕реЗрд╡рд╛ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рднреА рджреБрд░реНрдШрдЯрдирд╛ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣реА рд╣реИред

Fatal Exception: java.lang.VerifyError: Verifier rejected class com.google.android.gms.location.FusedLocationProviderClient: void com.google.android.gms.location.FusedLocationProviderClient.<init>(android.app.Activity) failed to verify: void com.google.android.gms.location.FusedLocationProviderClient.<init>(android.app.Activity): [0x8] register v2 has type Precise Reference: com.google.android.gms.common.api.internal.zzg but expected Precise Reference: com.google.android.gms.common.api.internal.zzcz

рдЕрдЧрд░ рдЖрдкрдХреЛ рдХреЛрдИ рд╣рд▓ рдорд┐рд▓ рдЬрд╛рдП рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

@oakis рдореЗрд░реЗ рд▓рд┐рдП рдирд┐рдореНрди рдЪрд░рдгреЛрдВ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛:

  1. рдЧреНрд░реЗрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЕрдВрджрд░ рдмрджрд▓реЗрдВ
dependencies {
        classpath 'com.android.tools.build:gradle:3.1.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

  1. рдЕрдкрдиреЗ Android / build.gradle рдореЗрдВ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ "google ()" рдЬреЛрдбрд╝реЗрдВ

рдЕрдкрдиреЗ AndroidManifest.xml рдореЗрдВ рдХрднреА-рдХрднреА <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди

  1. рдЬрдм рдЖрдк рдЕрдкрдиреЗ рдРрдк рдХреА рдкрд╣рд▓реА рд╕реНрдХреНрд░реАрди рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕реНрдерд╛рди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдорд╛рдВрдЧ рд╕рдХрддреЗ рд╣реИрдВ
    try { const granted = await PermissionsAndroid.request( PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION ) if (granted == PermissionsAndroid.RESULTS.GRANTED) { // WHATEVER WAY YOU WANT THEM TO KNOW THAT THEY HAVE GRANTED THE PERMISSION //MAY BE USING BASIC ALERT OR TOASTANDROID } else { //SAME AS ABOVE } } catch (error) { //catch the error alert(error); }
  2. рдЭреВрда рдмреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рднреА enableHighAccuracy рд╕реЗрдЯ рди рдХрд░реЗрдВ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп maximumAge рдирд┐рдХрд╛рд▓реЗрдВ рдФрд░ рдЕрдкрдиреЗ timeOut рдмрдврд╝рд╛рдПрдВред {enableHighAccuracy: true, timeout: 100000,} рддрд░рд╣ рдХреБрдЫ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреА рдорджрдж рдХрд░реЗрдЧрд╛ред

рдореЗрд░реЗ рд▓рд┐рдП API 23 рдкрд░ рд╕рд╣реА рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП EnableHighAccuracy рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореБрдЭреЗ API 26 рдкрд░ рдЧрд▓рдд рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
(рдпрд╣ рдХреЗрд╡рд▓ рд╡рд╣реА рд╣реИ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ)

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди-рд╕рд░реНрд╡рд┐рд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛

рдирдорд╕реНрддреЗ,

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛ рдФрд░ рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рд╣реИред

рдореИрдВрдиреЗ AndroidManifest.xml рдореЗрдВ рдиреАрдЪреЗ uses-feature рдЯреИрдЧ рдЬреЛрдбрд╝рд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрдк highAccuracy: true рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

<uses-feature android:name="android.hardware.location.gps" />

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк highAccuracy: high рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдиреЗрдЯрд┐рд╡ NETWORK_PROVIDER рдХреЗ рдмрдЬрд╛рдп GPS_PROVIDER рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдХрд╣рддрд╛ рд╣реИ, рдПрдкреАрдЖрдИ 21 рдпрд╛ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХрд╛ рд▓рдХреНрд╖реНрдп рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдРрдк рдХреЛ GPS_PROVIDER рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП AndroidManifest.xml рдореЗрдВ рдЗрд╕ рдЯреИрдЧ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рд╛рд╡рдзрд╛рдиреА: рдпрджрд┐ рдЖрдкрдХрд╛ рдРрдк рдПрдВрдбреНрд░реЙрдЗрдб 5.0 (рдПрдкреАрдЖрдИ рд╕реНрддрд░ 21) рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдХрд╛ рдРрдк рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ android.hardware.location.network рдпрд╛ android.hardware.location.gps рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдлрд╝реАрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдПрдкреНрд▓рд┐рдХреЗрд╢рди NETWORK_PROVIDER рдпрд╛ GPS_PROVIDER рд╕реЗ рд╕реНрдерд╛рди рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдХрд╛ рдРрдк рдЗрди рд╕рднреА рд╕реНрдерд╛рди рдкреНрд░рджрд╛рддрд╛ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рд╕реНрдерд╛рди рдХреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдШреЛрд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдРрдк рдЖрдкрдХреЗ рдРрдк рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдореЗрдВ рдЗрди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред Android 5.0 (API 21) рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░, ACCESS_FINE_LOCATION рдпрд╛ ACCESS_COARSE_LOCATION рдЕрдиреБрдорддрд┐ рдХреЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╕реНрдерд╛рди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╣рд┐рдд рдЕрдиреБрд░реЛрдз рд╢рд╛рдорд┐рд▓ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЙрди рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб 5.0 (рдПрдкреАрдЖрдИ рд╕реНрддрд░ 21) рдФрд░ рдЙрдЪреНрдЪрддрд░ рдкрд░ рд╕реНрдерд╛рди рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

https://developer.android.com/guide/topics/location/strategies#Permission

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЖрдкрдХреЛ AndroidManifest.xml рдореЗрдВ android.hardware.location.network рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ, рдЬрдм highAccuracy: false рд╕реНрдерд╛рдкрдирд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ LocationManager NETWORK_PROVIDER рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЯреИрдЧ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рдХрд┐рдП рдереЗ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ Google рдХреА рд╕реНрдерд╛рди рд╕реЗрд╡рд╛рдПрдВ рд╕рдХреНрд╖рдо рд╣реИрдВред
рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЬрдм рдореИрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдерд╛рди рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдПрдХ рдЕрд▓рд░реНрдЯ рдмреЙрдХреНрд╕ рдЖрдкрд╕реЗ "рд╕реНрдерд╛рди рдХреА рд╕рдЯреАрдХрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддрд╛ рд╣реИ?" рдкрд╛рда рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддреЗ рд╣реБрдП рдХрд┐ Google рдХреА рд╕реНрдерд╛рди рд╕реЗрд╡рд╛рдПрдБ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЪрд▓реЗрдВрдЧреА, рдФрд░ Google рдХреЛ рд╕реНрдерд╛рди рдбреЗрдЯрд╛ рднреА рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рдирдП рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЕрдкрдиреЗ рдирд┐рдпрдорд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред

9vgfb

рдЬрдм рдпрд╣ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреВрдЫреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓рдЧрднрдЧ рд╣рд░ рд╕рдордп рдПрдХ рддрд╛рдЬрд╛ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ ( maximumAge рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд)ред рдпрджрд┐ рдЖрдкрдиреЗ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рди рдирд╣реАрдВ рдорд╛рдВрдЧрд╛ рд╣реИ, рдФрд░ timeout рдореВрд▓реНрдп рдПрдХ рддрд╛рдЬрд╛ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рддреЛ navigator.geolocation.getCurrentPosition рдХреЗрд╡рд▓ рдПрдХ рд╕рдордпрдмрд╛рд╣реНрдп рд░рд┐рдЯрд░реНрди рджреЗрдЧрд╛ред

рдореИрдВрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдПрдХ рдмрд╛рд░ (рдЬреЛ рдлрд┐рд░ рд╕реЗ рдПрдХ рддрд╛рдЬрд╛ рд╕реНрдерд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ) рдЧреВрдЧрд▓ рдореИрдкреНрд╕ рдХреЛ рдЦреЛрд▓рдХрд░ рдЗрд╕реЗ рд╣рд▓ рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦрд╛ рд╣реИред

рдлрд┐рд░, рдпрд╣ рджрд╛рд╡рд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдХрд┐ рдпрд╣ рд╕рд╣реА рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг / рд╕рдорд╛рдзрд╛рди рд╣реИ, рдмрд╕ рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛

рдореИрдВ рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдлрд╝реНрдпреВрдЬрд╝-рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде Android рдкрд░ рд╕реНрдерд╛рди рдкрд░рд┐рд╡рд░реНрддрди рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛

рд╕реБрдЭрд╛рдП рдЧрдП рдореЙрдбреНрдпреВрд▓реЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреЛ рдХреЛрд░ рдореЗрдВ рдмрджрд▓рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рд╣реИ?

рдХреБрдЫ рджрд┐рдиреЛрдВ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдХреНрд░реЙрд╕-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд┐рдпрд╛ рдерд╛ рдЬреЛ рдЖрд░рдПрди рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ, рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдХреБрд╢рд▓ Google рд╕реНрдерд╛рди рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореЗрд░рд╛ рдореЙрдбреНрдпреВрд▓ рдЗрд╕реЗ рдЖрд░рдПрди рдХреЛрд░ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд┐рд╕реА рдХреЛ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рджреЗрд╢реА-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди-рд╕реЗрд╡рд╛ рдпрд╣ рдкреИрдХреЗрдЬ рдлреНрдпреВрдЬ рдХрд┐рдП рдЧрдП рд╕реНрдерд╛рди рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╕реНрдерд┐рддрд┐ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реНрдерд┐рддрд┐ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред @hramos рдФрд░ @reyalpsirc рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВред

@hramos рдлрд╝реНрдпреВрд╕реНрдб рд╕реНрдерд╛рди Google Play Services рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдареАрдХ рд╣реИ?

рдореИрдВрдиреЗ рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣ рдЕрд╕рдВрдЧрдд рд╣реИред рдореБрдЭреЗ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд░реНрде рд╣реИ рдЬреАрдкреАрдПрд╕ + рдиреЗрдЯрд╡рд░реНрдХ (рд╡рд╛рд╣рдХ рд╕реЗрд╡рд╛рдУрдВ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рди рдвреВрдВрдврдирд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрддрд░ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдкрд░, рдореЗрд░реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╡рд╛рд╣рдХ рд╕реЗрд╡рд╛рдУрдВ рдХреА рд╕реНрдерд╛рди рдЕрдиреБрдорддрд┐рдпрд╛рдБ рдЕрдХреНрд╖рдо рдереАрдВред рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдФрд░ navigator.geolocation.getCurrentPosition () рд╕реЗ рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдирд┐рдХрд╛рд▓рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдкреНрд░рдпрддреНрди
рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдЬрд╛рдПрдВ -> рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рд╕реНрдерд╛рди -> рд╕реНрдерд╛рди -> рдРрдк рд╕реНрддрд░ рдХреА рдЕрдиреБрдорддрд┐
рдХреИрд░рд┐рдпрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП -рдпреЛрдЧреНрдп рд╕реНрдерд╛рди рдХреА рдЕрдиреБрдорддрд┐
GetCurrentPosition рд╕реЗ рд╕реНрдерд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (рддреАрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░) рдХреЛ рд╣рдЯрд╛рдПрдВ
рдЕрдкрдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВ

рдЙрдореНрдореАрдж рд╣реИ рдХреА рдпрд╣ рдорджрдж рдХрд░реЗрдЧрд╛!

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИред рд▓реЗрдХрд┐рди https://snack.expo.io/SkJqg8gYm рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

{enableHighAccuracy: true, timeout: 10000, maximumAge: 0}
рдореБрдЭреЗ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рдЕрдЧрд░ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЫреЛрдбрд╝реЗрдВ рдпрд╛ 10000 рд╕реЗ рдХрдо рдорд╛рди рджреЗрдиреЗ рдкрд░ рдпрд╣ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ

рдЙрдкрд░реЛрдХреНрдд рддреАрдиреЛрдВ рдкреИрд░рд╛рдореАрдЯрд░ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдХрдо рд╕реЗ рдХрдо рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧреА

рдЗрд╕ рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рдЕрдкрдиреЗ _AndroidManifest.xml_ рдкрд░ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:

<_uses-рдЕрдиреБрдорддрд┐ i = "6" />
<_uses-рдЕрдиреБрдорддрд┐ i = "8" />
<_permission_ i = "10" /> _android: рдирд╛рдо = "android.permission.ACCESS_COARSE_LOCATION" _
_android: protectionLevel = "рд╣рд╕реНрддрд╛рдХреНрд╖рд░" _ />
<_permission_ i = "13" /> _android: рдирд╛рдо = "android.permission.ACCESS_FINE_LOCATION" _
_android: ProtectionLevel = "рд╣рд╕реНрддрд╛рдХреНрд╖рд░" _ />

рдирдорд╕реНрддреЗ рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ "рдЕрдиреБрд░реЛрдз рд╕рдордп рдмрд╛рд╣рд░" рдореИрдВрдиреЗ рд╣рд░ рд╕рдВрднрд╡ рд╕рдорд╛рдзрд╛рди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рд╡реЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдереЗ рд▓реЗрдХрд┐рди рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореБрдЭреЗ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдорд┐рд▓рд╛ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЦрддреНрдо рдХрд░рддрд╛ рд╣реИред
https://www.npmjs.com/package/react-native-geolocation-service
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ .....

@vishalTechnoFreek , рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдХреНрд░реЙрд╕-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рднреА рдореМрдЬреВрдж

рдпрд╣ рд╡рд░реНрддрдорд╛рди рдЖрд░рдПрди рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдЧрдд рд╣реИ, рд▓реЗрдХрд┐рди рдирдП Google рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ API рдХреЗ рд╕рд╛рде рдЖрдк рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ рдХрд┐ рдХрд┐рд╕ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рд╕реЗрд╡рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддреА рд╣реИред

рдПрдХ рдФрд░ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐, рдЬрдм рдЖрд░рдПрди рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЕрдкрдиреЗ рдРрдк рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ Google рдореИрдкреНрд╕ рдРрдк рдЦреЛрд▓рдиреЗ (рдлрд┐рд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ @manurana рдиреЗ рдЬреЛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдПрдХреНрд╕рдкреЛ рдореЗрдВ рд╡рд╛рдкрд╕ рдЪрд▓рд╛ рдЧрдпрд╛ред

рдореИрдВ Genymotion рдФрд░ Android 5 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, Genymotion рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП, рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП Genymotion рдХреЗ рдорд╛рдирдЪрд┐рддреНрд░ рд╡рд┐рдВрдбреЛ рдХреЛ рдЦреЛрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП; рдЕрдиреНрдпрдерд╛ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд┐рдиреНрди рдХреЗ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде

enableHighAccuracy рдпрд╛ рддреЛ true рдпрд╛ false рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореВрд▓ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП getCurrentPosition рд▓рд┐рдП 3 рддрд░реНрдХ рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

lifesaver esa рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред

рдореИрдВ рд▓реЛрдЧ,
рдореИрдВ рдЙрд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди, рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рдХреБрдЫ рдЕрдЬреАрдм рдиреЛрдЯрд┐рд╕ рдХрд┐рдпрд╛ (рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЬреАрдкреАрдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ)ред

рдпрджрд┐ рдЖрдк рднреМрддрд┐рдХ рдЙрдкрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ "рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рдХреЗ рдЕрдВрджрд░" рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЬреАрдкреАрдПрд╕ рд▓реЛрдХреЗрдЯрд░ рдХреЛ рдмрд╛рд╣рд░реА рдЪреАрдЬреЛрдВ рд╕реЗ рдкрд░реЗрд╢рд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рджреАрд╡рд╛рд░реЗрдВ, рдпрд╛ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░рдг рд╕реЗ рдХрд┐ рдЖрдк рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ "рдЗрдирдбреЛрд░" рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░, рдЖрдо рддреМрд░ рдкрд░, рдЗрд╕реЗ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред ред

рдареАрдХ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдпрд╛рд▓рдп рд╕реЗ рдмрд╛рд╣рд░ рдЬрд╛рддреЗ рд╣реИрдВ, рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ (рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ)ред

рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ: рдпрджрд┐ "рдЕрд╕рдлрд▓ (рдСрдлрд┐рд╕ рдореЗрдВ рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рд╡рд┐рдлрд▓, рдЭреВрдареЗ рдХреЗ рд╕рд╛рде рдкреБрди: рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП" enableHighAccuracy "рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди enableHighAccuracy рд╕реЗ false рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рддреЛ рдпрд╣ рд╕рдорд╛рдзрд╛рди рдЬреЛ рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдХрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ (рд▓рдЧрд╛рддрд╛рд░ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП) рдореИрдВрдиреЗ рд╕реНрдерд╛рди рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХреЛ рдЬреЛрдбрд╝рд╛ рд╣реИред рд╕рдЯреАрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХреА рдорджрдж рд╣реЛ рд╕рдХрддреА рд╣реИред

import retry from 'retry'
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
  const operation = retry.operation({ retries: 2 });
  operation.attempt(() => {
    navigator.geolocation.getCurrentPosition(
      (response) => { resolve(response) },
      (error) => {
        if (operation.retry(error)) {
          return;
        }
        reject(error)
     },
     { timeout: 2000, enableHighAccuracy: true, maximumAge: 100 },
   );
 })
} else {
  reject(new Error('Location access denied'))
}

https://www.npmjs.com/package/react-native-geolocation-service
рдЗрд╕ рдкреИрдХреЗрдЬ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рджреАред
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╕реБрдЭрд╛рд╡реЛрдВ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдирдорд╕реНрддреЗ, рдЕрддрд┐рдерд┐ рдореИрдВ рдорд┐рд╖реНрдЯреА рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпрд╛ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЬрдм рд╣рдо рдкрд╣рд▓реА рдмрд╛рд░ рд╕реНрдерд╛рди рдкреВрдЫрддреЗ рд╣реИрдВ рдФрд░ "рдореИрдХреНрд╕рд┐рдордирдПрдЬ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд┐рдЫрд▓реЗ рд╕реНрдерд╛рди рдХреЛ рдХреИрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рдмрдЧ рд╣реЛрддрд╛ рд╣реИ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдмрд╣реБрдд рд╣реА рдкрд╣рд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ рд╕реНрдерд╛рди "maximunAge" рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реИ

рд╕рд░рд▓ рдЙрддреНрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЬрд╣рд╛рдВ рд╣реИрдВ рд╡рд╣рд╛рдВ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ рдФрд░ рдЦреБрд▓реА рдЬрдЧрд╣ рдкрд░ рдЬрд╛рдПрдВ рдлрд┐рд░ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдЗрд╕рдХрд╛ рд╕рд░рд▓ рд╡рд┐рдЬреНрдЮрд╛рди рд╣реИред

рдЬреАрдкреАрдПрд╕ рд╕реЗрд╡рд╛рдПрдВ рдореЛрдЯреА рджреАрд╡рд╛рд░реЛрдВ рдФрд░ рдХрд╛рд░реЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрддреА рд╣реИрдВред

рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рдХреБрдЫ рднреА рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ !!!

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рдирд┐рдХрд╛рд▓реЗрдВ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ред

рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдХрд╛рдо!

рдирдорд╕реНрддреЗ,
рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рднреА рд╕рдорд╛рдзрд╛рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рддреАрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ {enableHighAccuracy: false} рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдиреЗрд╡рд┐рдЧреЗрдЯрд░.рдУрдЧреНрд▓реЛрдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдЖрдИрдУрдПрд╕ рдореЗрдВ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдЗрд╕рдХреЗ рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореИрдВрдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб 7, 8, 9 рдореЗрдВ рдЬрд╛рдВрдЪ рдХреА рд╣реИред рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб 7 рдХреЗ рд╕рд╛рде рд▓реЗрдиреЛрд╡реЛ рдлреЛрди рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдЗрдб 7 рдХреЗ рд╕рд╛рде рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдХрд┐рд╕реА рдХреЛ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИред
рдХреЛрдИ рднреА рд╕реБрдЭрд╛рд╡ рдкреНрд░рд╢рдВрд╕рдиреАрдп рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж

@akhilsanker рд╢рд╛рдпрдж рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓- рдлрд╝реНрдпреВрдЬрд╝ -рд╕реНрдерд╛рди рдЬреИрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ

рд╣рд╛рдп @reyalpsirc ,

рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рд╕рд░рд╛рд╣рдирд╛ рдХрд░рддреЗ рд╣реИрдВред
IOS рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ Android рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рд╕реАрдорд┐рдд рд╕рдордп рдХреА рдХрдореА рд╣реИ рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рд╣реИ, рдирдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛрдЧрд╛ред
рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди рд╣реИ?
рдЖрдкрдХреЗ рд╕рдордп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдзрдиреНрдпрд╡рд╛рджред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ @akhilsanker , рдореИрдВрдиреЗ рдХреЗрд╡рд▓ IOS рдХреЗ рд▓рд┐рдП рджреЗрд╢реА рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдлреНрдпреВрдЬрд╝рд▓реЛрдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред

maximumAge:0 рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ:
{ enableHighAccuracy: true, timeout: 60000, maximumAge:0 }
рд╢рд╛рдпрдж @GersonM рд╕рд╣реА рд╣реИ ...

рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЖрд░рдПрди рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ 0.60 рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдХреГрдкрдпрд╛ https://github.com/react-native-community/react-native-geolocation рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред рдзрдиреНрдпрд╡рд╛рдж

рдпрд╣ 2019 рд╣реИ, 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рдиреАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЧрдЬрдм рдХрд╛ред

рдпрд╣ 2019 рд╣реИ, 3 рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдерд╛рдиреАрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЧрдЬрдм рдХрд╛ред

рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди-рд╕реЗрд╡рд╛ рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред

рдпрджрд┐ рдХреЛрдИ рдкреИрдХреЗрдЬ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЙрд╕ рд░реЗрдкреЛ рдкрд░ рдПрдХ рдореБрджреНрджрд╛ рдЯрд┐рдХрдЯ рдмрдирд╛рдПрдВред рд╕рдорд╕реНрдпрд╛рдПрдБ рд╕реНрд╡рдпрдВ рдареАрдХ рдирд╣реАрдВ рд╣реЛрдВрдЧреА, рд╕рдореБрджрд╛рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред

рджреЗрдЦрд┐рдП рдЗрд╡рд╛рдВрдХрд╛ рдХреА рдЯрд┐рдкреНрдкрдгреА рдореБрдЭреЗ рджреЛрдиреЛрдВ <permission> __and__ <uses-permission> рдореЗрдЯрд╛ рдЯреИрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА

https://www.npmjs.com/package/react-native-geolocation-service
рдЗрд╕ рдкреИрдХреЗрдЬ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рджреАред
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╕реБрдЭрд╛рд╡реЛрдВ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

aniss picture aniss  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

phongyewtong picture phongyewtong  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

anchetaWern picture anchetaWern  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

grabbou picture grabbou  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vikeri picture vikeri  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ