بسم الله الرحمن الرحيم
تدوينة اليوم هي كيفية برمجة تطبيق اندرويد بداخله يتم فتح/ عرض صفحة ويب داخل التطبيق .. وكذلك سوف أبين لكم كيفية فتح الصفحة داخل المتصفح.
طبعاً الدرس جداً جداً سهل, ولكن كثير منكم يحتاجه.
و لكثرة المشاريع التي سوف أعرضها لكم لن أطيل الشرح, لأنك بالتأكيد تخطيت مرحلة مبتدأ لذلك سوف أعرض الكود واشرح عليه بعض النقاط .. وانت تجربه وتكتب لنا رأيك ^^
في البداية يجب عليك اضافة صلاحية اتصال التطبيق بالانترنت, وذلك بفتح ملف 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
حضرتك لما بنفذ الموضوع على ال main activity بيشتغل ميه ميه
لكن لما بربطه باكتيفيتى جديد من خلال زرار
اول ما يدوس على الزرار يقولى
the application has stopped unexpectedly
يا ترى ايه الحل انا مشيت على الخطوات بالظبط
يجب اضافة الاكتفتي الاخرى في ملف المانيفيست .. manifest android
اضفتها وجربت قبل تطبيق الدرس كان شغال تمام ادوس على الزر فى الرئيسيه ينقلنى الى الاكتفتى الجديد
بس لما الاكتفتى الجديد اطبق فيه الدرس اول ما ادوس على الزر تجيلى نفس الرساله
اخي الكريم جرجس
لا اعلم ما المشكله ولكنك اذا حذفت السطرين التاليين لن تصادف نفس الخطا
السطر رقم 19
requestWindowFeature(Window.FEATURE_PROGRESS);
والسطر رقم 34
webview.getSettings().setJavaScriptEnabled(true);
السلام عليكم يا اخي الكريم عملت نفس خطواتك بس المشكلة عند الرجع يخرج من البرنامج مثلا انا عملت للموقع تبعي وانا بالصفحة الاولى اضغط على الصفحة الرابعة و ادخل على الصفحة الرابعة بس عند ما اريد ارجع اضغط زر الرجوع يخرج من البرنامج كيف احل المشكلة
السلام علكيم ورحمة الله وبركاته
اشكرك اخي عبد القادر الشكر الجزيل على هذا الموضوع وهذا الشرح المميز جدا
لكن انا عندي سؤال وارجو منك الاجابة عليه لأني بحثت كثيرا ولكن لم اجد جوابا وافيا
السؤال : انا اذا عرضت موقع يوتيوب بجميع قنواته في اداة webview هل هذا يخالف سياسة google ام لا ؟
ارجو ثم ارجو ثم ارجو ان لاتبخل علي بالاجابة
والف الف شكر لك يا طريق العرب في البرمجة.