برمجة عرض صفحة ويب داخل تطبيق اندرويد

بسم الله الرحمن الرحيم

تدوينة اليوم هي كيفية برمجة تطبيق اندرويد بداخله يتم فتح/ عرض صفحة ويب داخل التطبيق .. وكذلك سوف أبين لكم كيفية فتح الصفحة داخل المتصفح.

طبعاً الدرس جداً جداً سهل, ولكن كثير منكم يحتاجه.

و لكثرة المشاريع التي سوف أعرضها لكم لن أطيل الشرح, لأنك بالتأكيد تخطيت مرحلة مبتدأ لذلك سوف أعرض الكود واشرح عليه بعض النقاط .. وانت تجربه وتكتب لنا رأيك ^^

في البداية يجب عليك اضافة صلاحية اتصال التطبيق بالانترنت, وذلك بفتح ملف AndroidManifest.xml ووضع فيه :

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

أما بالنسبة للاكتفتي الذي سوف نطبق عليه فهو الرئيسية MainActivity.java , تستطيع استخدام اي اكتفتي تريد .. ولكن انا أطبق الدرس على أنه صفحة ويب فقط .

قبل ان تذهب للجزء البرمجي نحتاج فقط اداة واحدة في الليوت وهي عنصر WebView. بالنسبة لي وضعت هذا العنصر في activity_main.xml

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<WebView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/webView" />

تم إدراج عنصر من نوع WebView ويحمل ID = webView وكما إنه متمدد بكامل الشاشة.

الآن نذهب إلى MainActivity.java :

package com.andrody.first_app;

import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;


public class MainActivity extends Activity{
    // تعريف المتغيرات ولدينا كائن واحد فقط ويب فيو
            WebView webview;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // اعداد شريط المعالجة
        requestWindowFeature(Window.FEATURE_PROGRESS);
        // ربط هذه الاكتفتي بالليوت الذي فيه العنصر ويب فيو
        setContentView(R.layout.activity_main);
        /**
         * هنا إذا كنت تريد تشغيل صفحة الويب في المتصفح ..
         * فلا تحتاج إلى كل هذه الأكواد فقط الى سطرين .. تعريف المتغير لويب فيو + تحديد الرابط
         * هذه السطرين في الأسفل حررها وامسح الباقي إذا كنت تريد فتح صفحة الويب من متصفح الجوال بواسطة التطبيق
         */
        //WebView webView = (WebView) findViewById(R.id.webView);
        //webView.loadUrl("http://www.andrody.com/");

        // ربط وتعريف المتغير webview بواسطة الآي دي
        webview = (WebView) findViewById(R.id.webView);

        // تمكين جافا سكريبت في صفحة الويب
        webview.getSettings().setJavaScriptEnabled(true);

        // السماح بالتكبير وتصغير في الصفحة
        webview.getSettings().setBuiltInZoomControls(true);

        // تصغير صفحة الويب لتناسب شاشة الجوال
        webview.getSettings().setLoadWithOverviewMode(true);
        webview.getSettings().setUseWideViewPort(true);

        // فتح صفحة الويب المطلوبة .. اكتب رابط الصفحة التي تريد فتحها بالتطبيق بالاسفل
        webview.loadUrl("http://www.andrody.com/");

        // عرض شريط المعالجة والتقدم لصفحة الويب
        webview.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress) {
                setProgress(progress * 100);
            }
        });

        // الاتصال بكلاس InsideWebViewClient
        webview.setWebViewClient(new InsideWebViewClient());

    }

    private class InsideWebViewClient extends WebViewClient {
        @Override
        // تمكين وعرض الصفحة داخل التطبيق نفسه دون الخروج لمتصفح خارجي
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;

        }

    }}

انتظرونا بكل جديد ومفيد وحصري على مدونة اندرودي عربي – AndRody , كما نتشرف بمتابعتكم لنا على صفحة الفيس بوك الخاصة بنا. والسلام عليكم …

لتحميل التدوينة في كتاب إلكتروني  Download pdf : https://andrody.com/?attachment_id=185

عن عبدالقادر عليوي

مواليد 1996 , سوري الجنسية, طالب علم, لدي شغوف كبير في تعلم كل ما يتعلق بالانترنت من تطوير وحماية, أحب القراءة كثيراً .. هدفي نشر العلم بشتى أنواعه ومجالاته, متابع من الدرجة الأولى لـ الدكتور ابراهيم الفقي و الشيخ أحمد ديدات - رحمهم الله -.

شاهد أيضاً

التقنيات التي نستطيع برمجة تطبيقات والعاب الاندرويد بها

هل أنت محتار من أين تريد البدأ في مجال برمجة التطبيقات للهواتف الذكية أو الألعاب عالية الاداء ؟ تعرف في هذا المقال عن اللغات والتقنيات واختر منها ما يناسبك لدخول هذا المجال

تعلم برمجة تطبيق اندرويد لمدونتك البلوجر (1)

هل لديك تدوينة أو موقع إخباري ؟ أو معرض يعرض الكثير من البيانات من وسائط ؟ وبحاجة لعرضها في تطبيق اندرويد ؟ هذه فرصتك من هنا وللمبتدئين تعلم برمجة تطبيق لمدونتك

عرض صورة في التطبيق من فايربيس

بسم الله الرحمن الرحيم اليوم سيكون شرحنا عن كيفية عرض صورة  في التطبيق من قاعدة …

6 تعليقات

  1. حضرتك لما بنفذ الموضوع على ال main activity بيشتغل ميه ميه
    لكن لما بربطه باكتيفيتى جديد من خلال زرار
    اول ما يدوس على الزرار يقولى
    the application has stopped unexpectedly

    يا ترى ايه الحل انا مشيت على الخطوات بالظبط

    • يجب اضافة الاكتفتي الاخرى في ملف المانيفيست .. manifest android

      • اضفتها وجربت قبل تطبيق الدرس كان شغال تمام ادوس على الزر فى الرئيسيه ينقلنى الى الاكتفتى الجديد

        بس لما الاكتفتى الجديد اطبق فيه الدرس اول ما ادوس على الزر تجيلى نفس الرساله

        • اخي الكريم جرجس
          لا اعلم ما المشكله ولكنك اذا حذفت السطرين التاليين لن تصادف نفس الخطا

          السطر رقم 19
          requestWindowFeature(Window.FEATURE_PROGRESS);

          والسطر رقم 34
          webview.getSettings().setJavaScriptEnabled(true);

  2. اسامة الصرمي

    السلام عليكم يا اخي الكريم عملت نفس خطواتك بس المشكلة عند الرجع يخرج من البرنامج مثلا انا عملت للموقع تبعي وانا بالصفحة الاولى اضغط على الصفحة الرابعة و ادخل على الصفحة الرابعة بس عند ما اريد ارجع اضغط زر الرجوع يخرج من البرنامج كيف احل المشكلة

  3. عبدالله

    السلام علكيم ورحمة الله وبركاته

    اشكرك اخي عبد القادر الشكر الجزيل على هذا الموضوع وهذا الشرح المميز جدا

    لكن انا عندي سؤال وارجو منك الاجابة عليه لأني بحثت كثيرا ولكن لم اجد جوابا وافيا

    السؤال : انا اذا عرضت موقع يوتيوب بجميع قنواته في اداة webview هل هذا يخالف سياسة google ام لا ؟

    ارجو ثم ارجو ثم ارجو ان لاتبخل علي بالاجابة

    والف الف شكر لك يا طريق العرب في البرمجة.

ضع بصمتك بتعليق يعبر عن امتنانك

هذا الموقع يستخدم Akismet للحدّ من التعليقات المزعجة والغير مرغوبة. تعرّف على كيفية معالجة بيانات تعليقك.