Xamarin.Forms
मैप्स के साथ काम करना
खोज…
टिप्पणियों
यदि आप अपना प्रोजेक्ट किसी अन्य कंप्यूटर पर चलाने जा रहे हैं, तो आपको इसके लिए एक नई API कुंजी जनरेट करनी होगी, क्योंकि SHA-1 फ़िंगरप्रिंट विभिन्न बिल्ड मशीनों के लिए मेल नहीं खाएगा।
आप परियोजना, उदाहरण में वर्णित Xamarin.Forms में एक नक्शा जोड़ना तलाश कर सकते हैं यहां
Xamarin.Forms (Xamarin Studio) में एक मानचित्र जोड़ना
आप बस Xamarin फॉर्म के साथ प्रत्येक प्लेटफॉर्म पर मूल मानचित्र API का उपयोग कर सकते हैं। आपको बस जरूरत है Xamarin.Forms.Maps पैकेज को नगेट से डाउनलोड करने और इसे प्रत्येक प्रोजेक्ट (पीसीआर प्रोजेक्ट सहित) में इंस्टॉल करने की।
मैप्स इनिशियलाइज़ेशन
सबसे पहले आपको इस कोड को अपनी प्लेटफ़ॉर्म-विशिष्ट परियोजनाओं में जोड़ना होगा। ऐसा करने के लिए आपको Xamarin.FormsMaps.Init
विधि कॉल को जोड़ना होगा, जैसे नीचे दिए गए उदाहरणों में।
iOS प्रोजेक्ट
फ़ाइल AppDelegate.cs
[Register("AppDelegate")]
public partial class AppDelegate : Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
{
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
Xamarin.Forms.Forms.Init();
Xamarin.FormsMaps.Init();
LoadApplication(new App());
return base.FinishedLaunching(app, options);
}
}
Android परियोजना
फ़ाइल MainActivity.cs
[Activity(Label = "MapExample.Droid", Icon = "@drawable/icon", Theme = "@style/MyTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
Xamarin.Forms.Forms.Init(this, bundle);
Xamarin.FormsMaps.Init(this, bundle);
LoadApplication(new App());
}
}
प्लेटफ़ॉर्म कॉन्फ़िगरेशन
मानचित्र प्रदर्शित होने से पहले कुछ प्लेटफार्मों पर अतिरिक्त कॉन्फ़िगरेशन चरणों की आवश्यकता होती है।
iOS प्रोजेक्ट
IOS प्रोजेक्ट में आपको बस अपनी Info.plist फ़ाइल में 2 प्रविष्टियाँ जोड़नी होंगी :
- मूल्य के साथ
NSLocationWhenInUseUsageDescription
स्ट्रिंगWe are using your location
- मूल्य के साथ
NSLocationAlwaysUsageDescription
स्ट्रिंगCan we use your location
Android परियोजना
Google मानचित्र का उपयोग करने के लिए आपको एक एपीआई कुंजी उत्पन्न करनी होगी और उसे अपनी परियोजना में जोड़ना होगा। इस कुंजी को पाने के लिए नीचे दिए गए निर्देश का पालन करें:
(वैकल्पिक) यह पता लगाएं कि आपका कुंजी टूल टूल स्थान कहाँ है (डिफ़ॉल्ट
/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands
)(वैकल्पिक) टर्मिनल खोलें और अपने keytool स्थान पर जाएं:
cd /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands
निम्न कुंजीटूल कमांड चलाएँ:
keytool -list -v -keystore "/Users/[USERNAME]/.local/share/Xamarin/Mono for Android/debug.keystore" -alias androiddebugkey -storepass android -keypass android
जहां [USERNAME] स्पष्ट रूप से आपका वर्तमान उपयोगकर्ता फ़ोल्डर है। आपको आउटपुट में इसके समान कुछ मिलना चाहिए:
Alias name: androiddebugkey Creation date: Jun 30, 2016 Entry type: PrivateKeyEntry Certificate chain length: 1 Certificate[1]: Owner: CN=Android Debug, O=Android, C=US Issuer: CN=Android Debug, O=Android, C=US Serial number: 4b5ac934 Valid from: Thu Jun 30 10:22:00 EEST 2016 until: Sat Jun 23 10:22:00 EEST 2046 Certificate fingerprints: MD5: 4E:49:A7:14:99:D6:AB:9F:AA:C7:07:E2:6A:1A:1D:CA SHA1: 57:A1:E5:23:CE:49:2F:17:8D:8A:EA:87:65:44:C1:DD:1C:DA:51:95 SHA256: 70:E1:F3:5B:95:69:36:4A:82:A9:62:F3:67:B6:73:A4:DD:92:95:51:44:E3:4C:3D:9E:ED:99:03:09:9F:90:3F Signature algorithm name: SHA256withRSA Version: 3
इस आउटपुट में हमें जो चाहिए वो है SHA1 सर्टिफिकेट फिंगरप्रिंट। हमारे मामले में यह इसके बराबर है:
57:A1:E5:23:CE:49:2F:17:8D:8A:EA:87:65:44:C1:DD:1C:DA:51:95
इस कुंजी को कहीं कॉपी या सेव करें। हमें बाद में इसकी आवश्यकता होगी।
Google डेवलपर्स कंसोल पर जाएं, हमारे मामले में हमें Google मैप्स एंड्रॉइड एपीआई जोड़ना होगा, इसलिए इसे चुनें:
Google आपसे API को सक्षम करने के लिए एक परियोजना बनाने के लिए कहेगा, इस टिप का पालन करें और परियोजना बनाएँ:
अपनी परियोजना के लिए Google मानचित्र API सक्षम करें: आपके द्वारा एपीआई सक्षम करने के बाद, आपको अपने ऐप के लिए क्रेडेंशियल्स बनाने होंगे। इस टिप का पालन करें:
अगले पृष्ठ पर Android प्लेटफ़ॉर्म चुनें, "मुझे क्या क्रेडेंशियल्स की आवश्यकता है?" बटन, अपनी एपीआई कुंजी के लिए एक नाम बनाएं, "पैकेज नाम और फिंगरप्रिंट जोड़ें" पर टैप करें, चरण 4 से अपना पैकेज नाम और अपने SHA1 फिंगरप्रिंट दर्ज करें और अंत में एपीआई कुंजी बनाएं: Xamarin Studio में अपने पैकेज का नाम खोजने के लिए अपने .Droid समाधान पर जाएँ -> AndroidManifest.xml:
निर्माण के बाद नई एपीआई कुंजी की प्रतिलिपि बनाएँ ("के बाद" बटन दबाएं मत भूलना) और अपने
AndroidManifest.xml
फ़ाइल पर चिपकाएँ: फ़ाइल AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="documentation.mapexample"> <uses-sdk android:minSdkVersion="15" /> <application android:label="MapExample"> <meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyBAg8X-t4pOIDDp3q5Ph45jKUIVjo_RnxU" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> </application> </manifest>
आपको कुछ अतिरिक्त सुविधाओं को सक्षम करने के लिए अपने प्रदर्शन में कुछ अनुमतियाँ सक्षम करने की आवश्यकता होगी:
- प्रवेश मोटे स्थान
- ठीक स्थान पर पहुँचें
- एक्सेस लोकेशन अतिरिक्त कमांड
- पहुंच स्थान
- नेटवर्क राज्य तक पहुँचें
- प्रवेश वाईफ़ाई राज्य
- इंटरनेट
हालाँकि, मैप डेटा डाउनलोड करने के लिए अंतिम दो अनुमतियों की आवश्यकता होती है। अधिक जानने के लिए Android अनुमतियों के बारे में पढ़ें। Android कॉन्फ़िगरेशन के लिए यह सभी चरण हैं।
नोट : यदि आप अपने ऐप को एंड्रॉइड सिम्युलेटर पर चलाना चाहते हैं, तो आपको उस पर Google Play Services इंस्टॉल करना होगा। Xamarin Android प्लेयर पर Play Services इंस्टॉल करने के लिए इस ट्यूटोरियल का अनुसरण करें । अगर आपको play store की स्थापना के बाद google play services का अपडेट नहीं मिल रहा है, तो आप इसे सीधे अपने ऐप से अपडेट कर सकते हैं, जहाँ आपके पास मैप्स सेवाओं पर निर्भरता है
नक्शा जोड़ना
अपने crossplatform परियोजना के लिए मानचित्र दृश्य जोड़ना काफी सरल है। यहाँ एक उदाहरण है कि आप इसे कैसे कर सकते हैं (मैं XAML के बिना पीसीएल परियोजना का उपयोग कर रहा हूं)।
पीसीएल परियोजना
फ़ाइल MapExample.cs
public class App : Application
{
public App()
{
var map = new Map();
map.IsShowingUser = true;
var rootPage = new ContentPage();
rootPage.Content = map;
MainPage = rootPage;
}
}
बस इतना ही। अब यदि आप iOS या Android पर अपना ऐप चलाएंगे, तो यह आपको मैप दृश्य दिखाएगा: