By using this site, you agree to the Privacy Policy and Terms of Use.
موافق
عرب فلاترعرب فلاتر
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
قراءة: شرح استخدام webview_flutter في Flutter
شارك
تسجيل الدخول
إشعار أظهر المزيد
Aa
عرب فلاترعرب فلاتر
Aa
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
Search

أقسام الموقع

استكشف جميع أقسام الموقع
قسم Dart في موقع عرب فلاتر

Dart

59 مقالات
قسم Widgets في موقع عرب فلاتر

Widgets

104 مقالات
قسم Packages في موقع عرب فلاتر

Packages

19 مقالات
قسم Tutorials في موقع عرب فلاتر

Tutorials

22 مقالات

أخر المواضيع

استكشف أخر المواضيع المنشورة
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا

5
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials

حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر

10
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials

أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات

17
لديك حساب موجود؟ تسجيل الدخول
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
عرب فلاتر > Packages > شرح استخدام webview_flutter في Flutter
Packages

شرح استخدام webview_flutter في Flutter

عبدالله يوسف
أخر تحديث 2024/11/15
بواسطة عبدالله يوسف اضف تعليق 5 دقيقة للقراءة 5070 مشاهدات 4 1
شارك
شرح استخدام webview_flutter في Flutter
شرح استخدام webview_flutter في Flutter
شارك

خدماتنا البرمجية – عرب فلاتر🚀

خدماتنا البرمجية – عرب فلاتر

تعتبر حزمة webview_flutter أداة قوية ومفيدة في تطوير تطبيقات Flutter، حيث تتيح إمكانية عرض محتوى الويب داخل تطبيقك. تعمل هذه الحزمة على تضمين متصفح الويب داخل تطبيقك، مما يسمح للمستخدمين بتصفح صفحات الويب وتفاعل معها بسهولة وبطريقة مرنة.

المحتويات
أهمية حزمة webview_flutter:خصائص حزمة webview_flutter:1. WebViewController2. NavigationDelegate3. WebViewWidgetمثال كامل لاستخدام حزمة webview_flutter:

أهمية حزمة webview_flutter:

توفر حزمة webview_flutter إمكانية دمج متصفح الويب في تطبيقاتك بشكل سلس وسهل الاستخدام. يعتبر استخدام متصفح الويب ضرورى في العديد من السيناريوهات، بما في ذلك:

  • عرض صفحات الويب الخارجية: يمكن استخدام حزمة webview_flutter لعرض صفحات الويب الخارجية داخل تطبيقك، مثل عرض مقالات الأخبار أو صفحات المنتجات الخاصة بموقعك.
  • تطبيقات الويب: يمكن استخدام حزمة webview_flutter لتحويل تطبيق الويب الحالي إلى تطبيق Flutter من خلال تضمين متصفح الويب داخل التطبيق وعرض المحتوى بشكل سلس ومتكامل.
  • الإعلانات والتحليلات: يمكن استخدام حزمة webview_flutter لعرض إعلانات أو تضمين رموز التحليل في صفحات الويب المعروضة، مما يسمح لك بتتبع وتحليل تفاعل المستخدمين مع المحتوى.

“اقرأ أيضاً: شرح استخدام path_provider في Flutter“


خصائص حزمة webview_flutter:

دعونا نستعرض الخصائص الرئيسية في حزمة webview_flutter بالأكواد:

1. WebViewController

هذا الجزء يعرف حالة الصفحة ويحتوي على الـ WebViewController الذي يتحكم في عرض صفحة الويب.

import 'package:webview_flutter/webview_flutter.dart';

controller = WebViewController()
  ..setJavaScriptMode(JavaScriptMode.unrestricted)
  ..setBackgroundColor(const Color(0x00000000))
  ..setNavigationDelegate(
    NavigationDelegate(
      onProgress: (int progress) {
        // Update loading bar.
      },
      onPageStarted: (String url) {},
      onPageFinished: (String url) {},
      onWebResourceError: (WebResourceError error) {},
      onNavigationRequest: (NavigationRequest request) {
        if (request.url.startsWith('https://www.youtube.com/')) {
          return NavigationDecision.prevent;
        }
        return NavigationDecision.navigate;
      },
    ),
  )
  ..loadRequest(Uri.parse('https://flutter.dev'));
  • WebViewController controller = WebViewController(): يتم إنشاء مثيل جديد من WebViewController للتحكم في صفحة الويب المعروضة في WebView.
  • ..setJavaScriptMode(JavaScriptMode.unrestricted): تعيين وضع JavaScript للوضع غير المقيد، مما يتيح تشغيل السكربتات في صفحة الويب.
  • ..setBackgroundColor(const Color(0x00000000)): تعيين لون خلفية الـ WebView إلى اللون الشفاف.
  • ..setNavigationDelegate(NavigationDelegate()): تعيين مسؤول التنقل للـ WebViewController باستخدام NavigationDelegate المعطى سيتم شرح بالأسفل.
  • ..loadRequest(Uri.parse('https://flutter.dev')): تحميل صفحة الويب المستهدفة من رابط محدد.

“اقرأ أيضاً: شرح استخدام Image Picker في Flutter“

2. NavigationDelegate

هذا الجزء يعرف مسؤول التنقل لـ WebView ويحتوي على العديد من الدوال التي تتحكم في سلوك التنقل .

NavigationDelegate(
  onProgress: (int progress) {
    // Update loading bar.
  },
  onPageStarted: (String url) {},
  onPageFinished: (String url) {},
  onWebResourceError: (WebResourceError error) {},
  onNavigationRequest: (NavigationRequest request) {
    if (request.url.startsWith('https://www.youtube.com/')) {
      return NavigationDecision.prevent;
    }
    return NavigationDecision.navigate;
  },
),
  • onProgress: يتم استدعاءه لتحديث شريط التحميل عندما يتم تحميل صفحة الويب.
  • onPageStarted: يتم استدعاءه عندما يبدأ تحميل صفحة الويب.
  • onPageFinished: يتم استدعاءه عندما ينتهي تحميل صفحة الويب.
  • onWebResourceError: يتم استدعاءه عندما يحدث خطأ في تحميل مصدر ويب.
  • onNavigationRequest: يتم استدعاءه للتحقق من طلب التنقل وتحديد قرار التنقل. في هذا الكود، إذا بدأت عناوين URL بـ ‘https://www.youtube.com/’، فإن التنقل يمنع (NavigationDecision.prevent)، وإلا فإنه يتم السماح بالتنقل اليه (NavigationDecision.navigate).

3. WebViewWidget

WebViewWidget(controller: controller): يعرض واجهة المستخدم لـ WebView ويستخدم الـ controller المعطى.

import 'package:webview_flutter/webview_flutter.dart';

WebViewController? _controller;

@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: const Text('Web View Example'),
    ),
    body: WebViewWidget(controller: controller),
  );
}

“اقرأ أيضاً: شرح استخدام FlutterToast في Flutter“


مثال كامل لاستخدام حزمة webview_flutter:

دعنا نستعرض مثالًا كاملاً لاستخدام حزمة webview_flutter في تطبيق Flutter:

import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Web View Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const WebViewExample(),
    );
  }
}


class WebViewExample extends StatefulWidget {
  const WebViewExample({super.key});

  @override
  _WebViewExampleState createState() => _WebViewExampleState();
}

class _WebViewExampleState extends State<WebViewExample> {
  WebViewController controller = WebViewController()
  ..setJavaScriptMode(JavaScriptMode.unrestricted)
  ..setBackgroundColor(const Color(0x00000000))
  ..setNavigationDelegate(
    NavigationDelegate(
      onProgress: (int progress) {
        // Update loading bar.
      },
      onPageStarted: (String url) {},
      onPageFinished: (String url) {},
      onWebResourceError: (WebResourceError error) {},
      onNavigationRequest: (NavigationRequest request) {
        if (request.url.startsWith('https://www.youtube.com/')) {
          return NavigationDecision.prevent;
        }
        return NavigationDecision.navigate;
      },
    ),
  )
  ..loadRequest(Uri.parse('https://flutter.dev'));

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Web View Example'),
      ),
      body: WebViewWidget(controller: controller),
    );
  }
}

“اقرأ أيضاً: شرح استخدام url_launcher في Flutter“


باستخدام حزمة webview_flutter في تطبيقات Flutter، يمكن للمطورين دمج تجربة الويب بسهولة ومرونة، مما يوفر تجربة مستخدم سلسة وتفاعلية. استخدام هذه الحزمة يوفر وقت وجهود التطوير ويسمح بعرض صفحات الويب وتفاعل المستخدمين معها داخل التطبيق. ابدأ في استكشاف قدراتها وبناء تطبيقات متكاملة ومدهشة.

Arab Flutter Community 🚀

انضم إلى مجتمع Arab Flutter
شارك هذا المقال
فيسبوك تويتر Whatsapp Whatsapp لينكد ان تلغرام نسخ الرابط
Avatar of عبدالله يوسف
بواسطة عبدالله يوسف Founder and CEO at ArabFlutter
تابع:
أنا عبدالله يوسف، مهندس مصري ومؤسس موقع عرب فلاتر، ملهم بشغف التكنولوجيا والإبداع. كمصمم مواقع ومبرمج تطبيقات موبايل باستخدام Flutter، أستمتع بخلق عوالم رقمية فريدة ومبتكرة. تتجلى مواهبي في تصميم وتطوير واجهات مستخدم تفاعلية، حيث يمزج الجانب الجمالي بالدقة الهندسية. ما يميزني هو إلمامي الواسع بتقنيات البرمجة والتصميم، ومقدرتي على تطوير تطبيقات متنوعة عبر منصات مختلفة. أعتبر نفسي مبدعًا وملتزمًا، حيث أسعى دائمًا لتحقيق تحسين مستمر في مهاراتي وتقنياتي. أستمتع بتحديات العمل الجماعي وأؤمن بأهمية الابتكار والتطور. بفضل إبداعي والتزامي، أسعى لتقديم حلول فعّالة تلبي توقعات العملاء وتفوق عن المألوف.
اترك تعليقا اترك تعليقا

اترك تعليقاً إلغاء الرد

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
شرح الـ Event Loop في Flutter وجعل التطبيق لا يتوقف أبدًا
Tutorials
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
حل مشكلة التوافق بين Java و Kotlin و Gradle في فلاتر
Tutorials
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
أفضل الـ Packages في Flutter لتسريع تطوير التطبيقات
Tutorials
طريقة انشاء المجلدات باستخدام Dart
طريقة انشاء المجلدات باستخدام كود Dart تلقائيًا
Tutorials

مقالات ذات الصلة

اطلع على المزيد من المقالات المتعلقة بهذا الموضوع!
شرح استخدام حزمة GDPR Admob في Flutter
Packages

شرح استخدام حزمة GDPR Admob في فلاتر 2024

10 1
شرح استخدام حزمة Permission Handler في Flutter
Packages

شرح استخدام حزمة Permission Handler في Flutter

9 1
شرح استخدام حزمة QuickAlert في Flutter
Packages

شرح استخدام حزمة QuickAlert في Flutter

6
شرح استخدام Cached Network Image في Flutter
Packages

شرح استخدام Cached Network Image في Flutter

3
شرح استخدام حزمة Device Preview في Flutter
Packages

شرح استخدام حزمة Device Preview في Flutter

4
شرح استخدام flutter_launcher_icons في Flutter
Packages

شرح استخدام flutter_launcher_icons في Flutter

4
أظهر المزيد
شعار موقع عرب فلاتر شعار موقع عرب فلاتر

About US

Quick Links

  • خدماتنا
  • من نحن
  • اتصل بنا
  • اتفاقية استخدام
  • سياسة الخصوصية
© جميع الحقوق محفوظة موقع عرب فلاتر 2023
  • Dart
  • Widgets
  • Packages
  • Tutorials
  • Flutter Roadmap
  • تثبيت Dart
  • تثبيت Flutter
adbanner
تم اكتشاف مانع إعلانات
مرحبًا، يرجى إيقاف مانع الإعلانات. الإعلانات تُساهم في دعم موقعنا وتغطية جزء من تكاليف الاستضافة وتطوير المحتوى. شكرًا لتفهمك ودعمك.
Okay, I'll Whitelist
Welcome Back!

Sign in to your account

هل نسيت كلمة المرور؟