-
المساهمات
787 -
تاريخ الانضمام
-
تاريخ آخر زيارة
-
عدد الأيام التي تصدر بها
2
نوع المحتوى
ريادة الأعمال
البرمجة
التصميم
DevOps
التسويق والمبيعات
العمل الحر
البرامج والتطبيقات
آخر التحديثات
قصص نجاح
أسئلة وأجوبة
كتب
دورات
كل منشورات العضو Flutter Dev
-
اهلا بك اخي قمت بتجربة هذا الخيار وهو بالاساس متوفر لدي من قبل وعلى وضع Do not embed ولم ينجح
- 10 اجابة
-
- 1
-
تحيه طيبه للجميع احاول تشغيل تطبيق flutter - ios من خلال xcode ولكن الامر لا ينجح في كل مره احصل على الرسالة التاليه او الخطاء : Unable to install "Runner" The code signature version is no longer supported. ظهرت هذا المشكله لدي بعد تحديث هاتفي الايفون الى الاصدار ios 15 مع العلم انني قمت بتجربة تشغيل التطبيق على هاتف ايفون ios14 وهو يعمل بشكل جيد. هل يعلم احدكم سبب حدوث هذا المشكله وكيف يمكن حلها؟
- 10 اجابة
-
- 1
-
اهلا بيك اخوي اشكرك على اقتراحك ولكن ليس هذا الطريقه التي ابحث عنها هذا الطريقة العاديه هذا سبب المشكله انا ارغب بحلها
- 3 اجابة
-
- 1
-
تحيه طيبه للجميع كيف يمكن تحديد ارتفاع وعرض GridView بشكل تلقائي بدون ان اضع قيم انا ثابته اعتمادنا على شاشة الهاتف مقاساتها. اواجه مشكله انني قمت بتحديد القيم لشاشه هاتف اقوم بالاختبار عليها ولكن المشكله بعد تشغيل التطبيق على هاتف مساحة شاشته مختلفه العناصر صارت مثل الذي تضعها في خانه اكبر منها على سبيل المثال لدي صوره واسفل منها اسم الصوره في الهاتف الجديد النص اصبح مختفي ولو رغبة ان يظهر اقوم بتمرير تلك الصوره الى الاعلى وبعدها يظهر النص من الاسفل بمعنى الخانه اصبحت اصغر والعناصر التي بداخلها اصبحت تتحرك بها هل يوجد حل لتحديد الارتفاع والعرض بشكل تلقائي لحل هذا المشكله؟ مع العلم انني يكت بالاتطلاع على المكتبه التاليه https://pub.dev/packages/flutter_staggered_grid_view#-readme-tab- ولكني لا ارغب بستعمالها لنها تقوم بعرض بعض العناصر اطول والبعض اقصر وانا ارغب ان يكونن متساويات ف الطول
- 3 اجابة
-
- 1
-
تحيه طيبه للجميع لدي شريط bottomNavigationBar يعرض صفحات مختلفه من خلال احد الصفحات فيه اقوم بالانتقال الى صفحه مختلفه بواسطة الامر التالي: Navigator.push( context, MaterialPageRoute( builder: (context) => Page2()), ); ولكن مشكلتي لو قمت الان من خلال الصفحة page2 بالعوده الى الصفحة الاولى التي سبق وقمت بالانتقال منها يتم عرض الصفحه الاولى ولكن بدون شريط bottomNavigationBar ايضا انا اقوم بالعوده لها من خلال الامر التالي: Navigator.push( context, MaterialPageRoute( builder: (context) => Page1()), ); هل يوجد حل لهذا المشكله ام طريقة مختلفه لتجنب هذ المشكلة؟ كيف يمكن الوصول الى الصفحه الاولى في شريط bottomNavigationBar
- 1 جواب
-
- 1
-
هلا بيك اخي ساقوم بتجربه باذن الله حقيقه انني اشاهد هذا الطريقة منذ فتره ولكن لم يسبق لي تجربتها ماذا تفرق هذا الطريقه اخوي عن طريقه المعتاده؟ كل الشكر لك اخي الكريم
- 3 اجابة
-
- 1
-
لدي استفسار لو تكرمتو اواجه مشكله في بعض الصفحات الصفحات التي تنتقل وفيها اجراء على سبيل المثال لدي صفحه A انتقل منها الى صفحه B ثم الى صفحه C وهيا صفحه تعديل البيانات اقوم بتعديل البيانات بداخلها ثم اضغط حفظ ف يقوم زر الحفظ بحفظ البيانات وايضا يوجد امر انتقال وعوده الى صفحه B الان المستخدم في الصفحه B تحدث المشكله هنا لو قمت بضغط على زر row back في شريط appbar يعود بي الى صفحه C وهذا غلط من المفترض ان يعود الى صفحه A كيف يمكن حل هذا نوع من مشاكل الانتقال في Flutter لا اعلم حقيقه اذا كانت المشكله واضحه حسب ما قمت بشرحها
- 3 اجابة
-
- 1
-
لدي جهازي يعمل بنظام تشغيل اندرويد وارغب بعمل نسخه من برنامج واتساب اعمال كيف الطريقه لفعل ذلك؟انا اشوف الكثير يعمل له نسخه من الواتساب ويقوم باضافات وتغير الايقونه والاسم وغيره هل توجد طريقة محدده لفعل ذلك؟ مع العلم ان نظام المراسل المزدوج لا يمكن من خلال نسخ تطبيق واتساب اعمال
- 5 اجابة
-
- 1
-
تحيه طيبه للجميع لدي استفسار لو تكرمتو اقوم بستعمال TextFormField لتعبئة الارقام ولكن واجهتني مشكله مع نظام ios حيث ان المستخدم قادر على ادخال الارقام باللغة العربية وانا فقط ارغب ان يستقبل الحقل الارقام الانجليزية . في نظام ال ios يمكن للمستخدم تغيير الكيبورد من اسفل الكيبورد من انجليزي الى عربي والعكس ايضا. هل يوجد حل لجعل المستخدم فقط يقوم بادخال الارقام الانجليزية في الحقل؟ مع العلم انني قمت بتجربة : keyboardType: TextInputType.number, inputFormatters: <TextInputFormatter>[ FilteringTextInputFormatter.digitsOnly ], ولكن الكل يمنح المستخدم امكانية تغير الارقام من الانجليزية الى العربية هل يوجد حل مختلف لمنع المستخدم من ادخال الارقام العربية ؟
- 3 اجابة
-
- 1
-
حاولت تطبيقه هنا اخي هذا الكود الذي لدي قمت بتغيره وتعديل كثيرا ولكن لم ينجح الامر final FirebaseAuth _auth = FirebaseAuth.instance; void signInWithPhoneAuthCredential(PhoneAuthCredential phoneAuthCredential) async { setState(() { showLoading = true; }); try { final authCredential = await _auth.signInWithCredential(phoneAuthCredential); setState(() { showLoading = false; }); if (authCredential?.user != null) { print('Go to other page ok'); } } on FirebaseAuthException catch (e) { setState(() { showLoading = false; }); print(e.message); } } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Center( child: SingleChildScrollView( child: Container( child: Column( children: [ Container( padding: const EdgeInsets.all(16.0), child: Column( children: [ Row( children: [ Expanded( child: PinEntryTextField( fields: 6, onSubmit: (text) { smsOTP = text as String; }, ), ), ], ), GestureDetector( onTap: () { verifyOtp(); }, child: Container( margin: const EdgeInsets.all(8), height: 45, width: double.infinity, decoration: BoxDecoration( color: CustomColors.Background, borderRadius: BorderRadius.circular(0), ), alignment: Alignment.center, child: Text('Check'), ), ), ], ), ) ], ), ), ), ), ), ); } Future<void> generateOtp(String contact) async { final PhoneCodeSent smsOTPSent = (String verId, [int forceCodeResend]) { verificationId = verId; }; try { await _auth.verifyPhoneNumber( phoneNumber: contact, codeAutoRetrievalTimeout: (String verId) { verificationId = verId; }, codeSent: smsOTPSent, timeout: const Duration(seconds: 60), verificationCompleted: (AuthCredential phoneAuthCredential) {}, verificationFailed: (exception) { print(exception); }); } catch (e) { handleError(e as PlatformException); } } Future<void> verifyOtp() async { if (smsOTP == null || smsOTP == '') { print('please enter 6 digit otp'); return; } try { final AuthCredential credential = PhoneAuthProvider.credential( verificationId: verificationId, smsCode: smsOTP, ); signInWithPhoneAuthCredential(credential); } catch (e) { handleError(e as PlatformException); } } void handleError(PlatformException error) { switch (error.code) { case 'ERROR_INVALID_VERIFICATION_CODE': FocusScope.of(context).requestFocus(FocusNode()); setState(() { errorMessage = 'Invalid Code'; }); print('error'); break; default: print('error'); break; } } }
-
اهلا بك اخي الكريم شاكر لك ردك الغالي نعم انا قمت بتجربة هذا الحزمة وهيا شغاله ولكن المشكله التي لم افهم حلها بصراحه هم يطلبون في كل رسالة ان يكون هنالك معرف التطبيق او كود مرفق في الرسالة مثل الذي انت قمت بوضعه : FA+9qCX9VSu كيف ممكن ارفق هذا الكود لدى الرسالة التي تاتي من الفايربيز هذا الجزء الذي لم افهم العمل عليه اما باقي الاجزاء وتشغيل الكود لتجربه كل شي ناجح 100%100
-
لم افهم سولك عدل اخوي ولكن انا مسبقا اقوم بعملية تسجيل الدخول بواسطة حساب جوجل بمعنى انا لدي توثيق سابقا وتم تخزين البيانات مسبقا والحصول على Uid للمستخدم ولكن لاحقا اقوم بطلب استكمال بيانات المستخدم بحيث انني اقوم بطلب منه ادخال رقم هاتفه واقوم بتحقق منه هنا تحدث المشكله بحيث انني لا ارغب بتخزين رقم الهاتف انا سبق وقمت بتخزين الايميل وهذا كافي حتى لا احصل على معرفين Uid المشكله انني الان احصل على Uid مختلفين واحد لرقم الهاتف وثاني خاص ب الايميل
- 5 اجابة
-
- 1
-
اذا كنت ارغب بالحصول على رمز التفعيل من الفايربيز من خلال sms واتحقق ان رقم الهاتف صحيح ولكن بعد التحقق لا ارغب بتخزين او حفظ رقم الهاتف على الفايربيز في قائمة التوثيق او الحسابات التي تم توثيقها هل يمكن فعل ذلك؟ بمعنى انا فقط،محتاج الى رسالة التفعيل والتحقق ولكن بدون حفظ للبيانات لدي هل يمكن فعل ذلك؟ اذا نعم ياليت شرح الطريقه للغة البرمجة Flutter
-
تحيه طيبه للجميع لدي كود لتسجيل الدخول بواسطة رقم الهاتف والتحقق من otp المرسل من خلال sms الى الهاتف من firebase الكود يعمل بشكل جيد ولكن المشكلة لا يتم تعبئة الرمز بعد وصوله الى الهاتف او وصول الرسالة النصية الى الهاتف بشكل تلقائي في حقول textfiled ارغب بجعل القراءة تكون بشكل تلقائي بحيث ان المستخدم بعد ان يصل اليه الرمز يتم التحقق بشكل تلقائي وتعبئة الحقول ياليت اذا احد يعرف الطريقة يساعدنا الكود المستعمل لدي كامل : final FirebaseAuth _auth = FirebaseAuth.instance; void signInWithPhoneAuthCredential(PhoneAuthCredential phoneAuthCredential) async { setState(() { showLoading = true; }); try { final authCredential = await _auth.signInWithCredential(phoneAuthCredential); setState(() { showLoading = false; }); if (authCredential?.user != null) { } } on FirebaseAuthException catch (e) { setState(() { showLoading = false; }); print(e.message); } } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( body: Center( child: SingleChildScrollView( child: Container( child: Column( children: [ Container( padding: const EdgeInsets.all(16.0), child: Column( children: [ Row( children: [ Expanded( child: PinEntryTextField( fields: 6, onSubmit: (text) { smsOTP = text as String; }, ), ), ], ), GestureDetector( onTap: () { verifyOtp(); }, child: Container( margin: const EdgeInsets.all(8), height: 45, width: double.infinity, decoration: BoxDecoration( color: CustomColors.Background, borderRadius: BorderRadius.circular(0), ), alignment: Alignment.center, child: Text('Check'), ), ), ], ), ) ], ), ), ), ), ), ); } Future<void> generateOtp(String contact) async { final PhoneCodeSent smsOTPSent = (String verId, [int forceCodeResend]) { verificationId = verId; }; try { await _auth.verifyPhoneNumber( phoneNumber: contact, codeAutoRetrievalTimeout: (String verId) { verificationId = verId; }, codeSent: smsOTPSent, timeout: const Duration(seconds: 60), verificationCompleted: (AuthCredential phoneAuthCredential) {}, verificationFailed: (exception) { print(exception); }); } catch (e) { handleError(e as PlatformException); } } Future<void> verifyOtp() async { if (smsOTP == null || smsOTP == '') { print('please enter 6 digit otp'); return; } try { final AuthCredential credential = PhoneAuthProvider.credential( verificationId: verificationId, smsCode: smsOTP, ); signInWithPhoneAuthCredential(credential); } catch (e) { handleError(e as PlatformException); } } void handleError(PlatformException error) { switch (error.code) { case 'ERROR_INVALID_VERIFICATION_CODE': FocusScope.of(context).requestFocus(FocusNode()); setState(() { errorMessage = 'Invalid Code'; }); print('error'); break; default: print('error'); break; } } }
- 3 اجابة
-
- 1
-
اهلا بك اخي مثالك كان شغال لدي ولكن المشكلة كانت في كود الاتصال قمت بوضع دالة شرطيه فيه وتم حل المشكله ولله الحمد كل الشكر على اضافتك فادتني كثير
- 6 اجابة
-
- 1
-
انا قمت بتطبيقه بشكل مختلف ولكن نفس الكود المشكله ان بعد ان تتوقف CircularProgressIndicator لا تظهر الصورة في حالة عدم توفر البيانات قمت بوضع الصوره هنا بستبدال return Container();
- 6 اجابة
-
- 1
-
اهلا بك اخي الكريم شاكر لك ردك اخي سوال لو سمحت في هذا السطر return snapshot.hasData ? _build(context, snapshot.data) : CircularProgressIndicator(); ما المقصود بـ _build هنا ؟
- 6 اجابة
-
- 1
-
تحيه طيبه للجميع استعمال الكود التالي لتحقق من توفر البيانات في القائمة من عدمه : Widget getTasListView() { return arrList.isNotEmpty ? ListView.builder( itemCount: arrList.length, itemBuilder: (BuildContext context, int position) { return Card( color: Colors.white, elevation: 2.0, child: Column( children: <Widget>[ ListTile( title: Text(this.list[position].task), onLongPress: () => navigateToDetail(this.list[position], 'Edit Task'), ) ], ), ); }) : Center(child: Image.asset("path/image/img.png")); } المشكله التي اعاني منها ان الصوره في بعض الاوقات تظهر قبل انتهاء الاتصال او ظهور العناصر في القائمة حتى لو كانت ليست فارغه بمعنى حسب ما فهمت ان لو تاخر تحميل العناصر قليلا يتم اظهار الصوره حتى ظهور العناصر ثم تظهر العناصر وتختفي الصوره هل يوجد حل لهذا المشكله بحيث لو كان هنالك بيانات انا لا احتاج الى اظهار الصوره كامل فقط تظهر لو لم يكن هنالك بيانات وهذا الكود المستعمل للاتصال مع قاعدة البيانات : Future<List<Data>> fetchNotes() async { final String url = 'https://***************.php?id=' + id.toString(); var response = await http.post(Uri.parse(url)); var flowers = List<Data>(); if (response.statusCode == 200) { final flowersJsonData = json.decode(response.body).cast<Map<String, dynamic>>(); for (var flower in flowersJsonData) { flowers.add(Data.fromJson(flower)); } } else { throw Exception('Failed to load data from Server.'); } return flowers; }
- 6 اجابة
-
- 1
-
تعديل على سوالي الثاني : تم الحل اخي الكريم شكرا لك وللفائده كالتالي : المشكله كانت بعد تعديل بطريقةالمشار اليها في الاعلى من الاخ @Wael Aljamal كل الشكر لك اخي الكريم. نحن في حاجة الى اظهار نص او صورة للمستخدم في حالة كانت القائمة فارغة و طريقة الحل كانت بتحقق من القائمة في البداية مثال على الحل منقول: Widget getTasListView() { return arrList.isNotEmpty ? ListView.builder( itemCount: arrList.length, itemBuilder: (BuildContext context, int position) { return Card( color: Colors.white, elevation: 2.0, child: Column( children: <Widget>[ ListTile( title: Text(this.list[position].task), onLongPress: () => navigateToDetail(this.list[position], 'Edit Task'), ) ], ), ); }) : Center(child: Image.asset("path/image/img.png")); } هنا تم التحقق في البداية اذا كانت ليست فارغة وفي حالة انها فارغة تظهر صورة للمستخدم
- 2 اجابة
-
- 1
-
تحيه طيبه للجميع اقوم بالاستعلام عن بيانات في قاعدة البيانات نوع mysql من خلال الاتصال من فلاتر الى ملف php وجلب البيانات في حالة وجود بيانات الكود شغال 100%100 بدون ان تظهر رسالة الخطاء هذا ولكن في حالة عدم توفر بيانات في الجدول البيانات احصل على الخطاء التالي : E/flutter (19611): [ERROR:flutter/lib/ui/ui_dart_state.cc(186)] Unhandled Exception: FormatException: Unexpected character (at character 1) E/flutter (19611): <br /> E/flutter (19611): ^ E/flutter (19611): E/flutter (19611): #0 _ChunkedJsonParser.fail (dart:convert-patch/convert_patch.dart:1404:5) E/flutter (19611): #1 _ChunkedJsonParser.parseNumber (dart:convert-patch/convert_patch.dart:1271:9) E/flutter (19611): #2 _ChunkedJsonParser.parse (dart:convert-patch/convert_patch.dart:936:22) E/flutter (19611): #3 _parseJson (dart:convert-patch/convert_patch.dart:40:10) E/flutter (19611): #4 JsonDecoder.convert (dart:convert/json.dart:506:36) E/flutter (19611): #5 JsonCodec.decode (dart:convert/json.dart:157:41) E/flutter (19611): #6 _HomePageState.fetchNotes (package:testapp/Your.dart:115:38) E/flutter (19611): <asynchronous suspension> E/flutter (19611): #7 _HomePageState.initState.<anonymous closure> (package:testapp/Your.dart) E/flutter (19611): <asynchronous suspension> E/flutter (19611): الكود المستعمل للاستعلام: Future<List<Data>> fetchNotes() async { final String url = 'https://***************.php?id=' + id.toString(); var response = await http.post(Uri.parse(url)); var flowers = List<Data>(); if (response.statusCode == 200) { final flowersJsonData = json.decode(response.body).cast<Map<String, dynamic>>(); for (var flower in flowersJsonData) { flowers.add(Data.fromJson(flower)); } } else { throw Exception('Failed to load data from Server.'); } return flowers; } php file: <?php include 'con.php'; $id=$_GET['id']; $sql = "SELECT * FROM user WHERE id=?"; $stmt = $con->prepare($sql); $stmt->bind_param("s",$id); $stmt->execute(); $result = $stmt->get_result(); if ($result) { while($row[] = $result->fetch_assoc()) { $item = $row; $json = json_encode($item, JSON_NUMERIC_CHECK); } } else { echo "No Data Found."; } echo $json; $con->close(); ?> ياليت اذا احد لديه فكره عن حل للمشكله يفيدنا شكرا لكم
- 2 اجابة
-
- 1
-
تحيه طيبه للجميع كل ما حاولت ارفع تطبيقي على جوجل بلاي احصل على الاشعار التالي: يحتوي App Bundle على رموز برمجية أصلية، ولم يتم تحميل أي رموز لتصحيح الأخطاء. ننصحك بتحميل ملف رموز لتسهيل عملية تحليل الأعطال وأخطاء ANR وتصحيح الأخطاء فيهما. ما المقصود بها وكيف يمكن تجنبها او حلها ؟ وهل توجد مخاطر على تطبيقي منها ؟ مع العلم ان برمجة تطبيقي flutter
- 1 جواب
-
- 1
-
اهلا بك اخي بلال المشكله الذي احترت فيها ان تطبيقي السابق يظهر على طول حتى لو في صفحات مختلفه اما هذا قمت بتمرير حتى وصلت الى نهاية الصفحات ولم اجده ولكن لو قمت بالبحث باسم المطور يظهر لدي
- 3 اجابة
-
- 1