English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

طريقة استخدام مكونات WebView الأصلية في Android لتحميل الصفحات والبيانات

في Api، وصف هذا الكائن بشكل عام هو أنه يمكنه عرض صفحات الويب، مثل:

3. بعد ذلك يمكننا تحميل صفحة ويب باستخدام طريقة loadUrl من WebViewwebView.loadUrl(http://www.baidu.com/

نتيجة العرض:

يمكنك أيضًا تحميل بعض النصوص HTML، مثل:

String str = "<html><body>لقد حصلت على <b>192</b> نقاط.</body></html>";
webView.loadData(str, "text/html", null);

نتيجة العرض:

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

لنبدأ بعرض كيفية استخدام WebView خطوة بخطوة.

دعونا نرى كيفية استخدام WebView خطوة بخطوة.

أولاً: تحميل صفحة الويب

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

1. WebView يستخدم لعرض صفحات الويب، عند استخدامه يجب الانتباه دائمًا لإضافة إذن الإنترنت

<WebView
android:id="@+id/main_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
webView = (WebView) findViewById(R.id.main_webview);

2. أضف علامة WebView إلى تصميم XML وتمثيلها في Activity

3. بعد ذلك يمكننا تحميل صفحة ويب باستخدام طريقة loadUrl من WebViewwebView.loadUrl(http://www.baidu.com/

);
4. ولكن الصفحة التي يتم تحميلها بهذه الطريقة ستنتقل إلى متصفح الهاتف، كيف يمكننا تقييد عرض الصفحة في Activity الحالية، يجب تعيين نمط المتصفح على false

webView = (WebView) findViewById(R.id.main_webview);
// ضبط عميل WebView
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;// عودة قيمة false
}
});
إضافة الكود التالي:

webView.loadUrl("http://www.baidu.com/");

نتائج العرض:

بهذا نتمكن بسهولة من تحميل صفحة الويب.

WebSettings webSettings = webView.getSettings();

يقدم WebView أيضًا فئة قابلة للتعريف WebSettings لتعيين بعض المحتويات الأساسية للصفحات التي يتم عرضها، يتم الحصول على التمثيل من خلال استخدام طريقة get من كائن WebView

من خلال هذا الكائن يمكن تعيين سلسلة الخصائص التي يتم عرضها من قبل WebView

لإثبات أن الخصائص تعمل، قمت بتغيير صفحة عرض WebView الخاصة بي، إلى موقع شركتنا، لنبدأ أولاً بالنظر في نمط العرض لصفحة غير معينة الخصائص، يمكننا ملاحظة أن واجهة المستخدم ليست مناسبة للشاشة المحمولة، مما يؤدي إلى تجربة سيئة

WebSettings webSettings = webView.getSettings();
// تتيح WebView تنفيذ JavaScript
webSettings.setJavaScriptEnabled(true);
// السماح للجافا سكريبت بفتح النوافذ تلقائيًا
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
// تعيين التخزين المؤقت
webSettings.setAppCacheEnabled(true);
// تعيين نمط التخزين المؤقت، هناك أربعة أنماط
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// تعيين مسار التخزين المؤقت
// webSettings.setAppCachePath("");
// يدعم التكبير والتصغير (تكيف مع الشاشة الحالية)
webSettings.setSupportZoom(true);
// ضبط حجم الصور إلى حجم مناسب
webSettings.setUseWideViewPort(true);
// يدعم إعادة ترتيب المحتوى، هناك أربعة طرق
// الافتراضي هو NARROW_COLUMNS
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
// تعيين أن يمكن عرض التحكم في التكبير والتصغير
webSettings.setDisplayZoomControls(true);
// تعيين حجم الخط الافتراضي
webSettings.setDefaultFontSize(12);

بعد إتمام الإعدادات، نرى تأثيره في التشغيل

جميع الكود:

ملف القائمة: من المهم ألا تنسى إضافة إذن الإنترنت

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.wu.webviewdemo">
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

ملف التركيب

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#000"
android:gravity="center"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:text="استخدام WebView"
android:textAllCaps="false"
android:textColor="#fff" />
<WebView
android:id="@+id/main_webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>

Activity

package com.wu.webviewdemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.main_webview);
// ضبط عميل WebView
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;// عودة قيمة false
}
});
WebSettings webSettings = webView.getSettings();
// تتيح WebView تنفيذ JavaScript
webSettings.setJavaScriptEnabled(true);
// السماح للجافا سكريبت بفتح النوافذ تلقائيًا
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
// تعيين التخزين المؤقت
webSettings.setAppCacheEnabled(true);
// تعيين نمط التخزين المؤقت، هناك أربعة أنماط
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// تعيين مسار التخزين المؤقت
// webSettings.setAppCachePath("");
// يدعم التكبير والتصغير (تكيف مع الشاشة الحالية)
webSettings.setSupportZoom(true);
// ضبط حجم الصور إلى حجم مناسب
webSettings.setUseWideViewPort(true);
// يدعم إعادة ترتيب المحتوى، هناك أربعة طرق
// الافتراضي هو NARROW_COLUMNS
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
// تعيين أن يمكن عرض التحكم في التكبير والتصغير
webSettings.setDisplayZoomControls(true);
// تعيين حجم الخط الافتراضي
webSettings.setDefaultFontSize(12);
webView.loadUrl("http://www.lanou3g.com/");
}
}

الجزء الثاني: تحميل سلسلة html

في بعض تطبيقات تطوير Android، قد نواجه هذا النوع من الحالة، عرض الصفحة التفصيلية ليس نصًا بسيطًا ولا صفحة ويب بسيطة، بل بيانات html مكتوبة مسبقًا تقدمها لنا واجهة برمجة التطبيقات، في مثل هذه البيانات، الطريقة التي نستخدمها عادة هي تحميلها باستخدام WebView، مما يستخدم طريقة أخرى لـ WebView

public void loadData(String data, String mimeType, String encoding)

1. أولاً، لنلقي نظرة على شكل string الخاص بـ html، من أجل تعزيز الإقناع وتكيفه مع الواقع، لم أكن أنشئ سلسلة نصية (مثل المثال الذي بدأ به) بل أسرت قطعة من محتوى الأخبار من وينيوي (أخبار ليوغو وأخيهما، أحب أن أستمع إلى كوميدياً ليوغو، بعد كل شيء، يُفضل شرب الخمر والاستحمام بالبخار)

private String body = "<p>  <b>تقرير من إعلام واي تشاين 7 سبتمبر (بقلم: صغير)" +
اليوم في منتصف الليل، نشر طالب جو دى غوانغ من فئة هواكسياو بيان على ويبو يعبر عن ولائه لفرقة دى يون، ويقول إنه كان يعمل بشكل خاص خارج فرقة دى يون،
بسبب الخزي، لم يكن هناك اتصال لمدة عامين مع المعلم جو دى غوانغ والسيدة المعلم، وكان من المفترض أن يتم طردي من المدرسة، لكن تم تقديم الرحمة من قبل المعلم جو دى غوانغ غير المستسلم.
تم نشر هذا المقال من قبل جو دى غوانغ مع نص "فمن يمكنه تحسين الذنب هو الأفضل". بالإضافة إلى الحادثة الأخيرة بين تشاو يونج جين وهاو يونغ وي،
إذا استمرت النزاعات بين جو دى غوانغ وطلابه كما هي، فمن المحتمل أن يكون من الصعب إتمامها بشكل كامل.</p><p>  نص المقالة على حساب هواكسياو على ويبو: " +
</b></p><p>  تم الالتحاق بفرقة هواكسياو في عام 2006 وتم تسميتي "هواكسياو"، في 13 يونيو 2009، تم استقبالي كمعلم من قبل السيد جو دى غوانغ.
خلال السنوات القليلة، استخدمت في دى يون للأكل، والإقامة، والتعلم، والمعلم والسيدة المعلم لم يأخذوا أي أموال. في عام 2010، أعطاني المعلم والسيدة المعلم هدية نقودية وحقائب الزفاف،
وقدم لنا معلم النشاط والسيدة المعلم بيت الزوجية في قاعدة دى يون. في سبتمبر 2014، بسبب أسباب شخصية، ذهبت إلى الخارج بشكل غير قانوني للتنمية. لاحقاً، عادت إلى العاصمة واشمت بالخزي في مواجهة المعلم الكبير،
لم أرى المعلم الكبير لمدة عامين. بعد ذلك، إلى شنغهاي للتنمية، في أغسطس 2016، خلال عرض المعلم الكبير في شنغهاي، أجريت شجاعة للتعرف على المعلم الكبير.
وقد أغفر لي المعلم الكبير. في الوقت الذي عادت إلى العاصمة بعد شهرين، ذهبت إلى المنزل لرؤية السيدة المعلم، واطلبتها بالتسامح. ومع الخطأ الذي ارتكبه هواكسياو،
هذا يمكن أن يؤدي إلى "الصف الأبيض"، في الوقت الذي يتم إعادة تأسيس سجلات عائلة دى يون، تم تقديم الرحمة من قبل المعلم غير المستسلم، وإعطاء "التحقق من الملاحظة المؤقتة" يعتبر رحمة للطالب.
"الذنب خلفي خلفي يقدر تعليم معلمي الكبير وحنانه. خلفي خلفي، على الرغم من أنني على بعد آلاف الأميال من العاصمة، سأكون دائمًا قلبًا واحدًا مع داويان." +}}
"لم أنسى تعليمات معلمي الكبير، وأعمل بجد في الفن وأكون شخصًا جيدًا! أتمنى لمعلمي ومعلمتي الصحة والسلامة! خادمي خلفي خلفي يبعد عني ألف ميل، لكن سأكون دائمًا قلبًا واحدًا مع داويان."</p>";

2. قم بتعيين رمز الترميز الافتراضي، يُستخدم UTF-8 بشكل عام في الأندرويد

WebSettings webSettings = webView.getSettings();
webSettings.setDefaultTextEncodingName("UTF-8");

3. بعد ذلك، يتم استدعاء طريقة loadData لWebView

webView.loadData(body, "text/html; charset=UTF-8", null);

عرض النتيجة كالتالي:

إليك الكود الكامل، والتنسيق يستمر في استخدام (أولاً: تحميل الصفحة) ولا يوجد تغييرات كبيرة في الجزء من الكود، وهو كالتالي:

package com.wu.webviewdemo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends AppCompatActivity {
private WebView webView;
private String body = "<p>  <b>تقرير من إعلام واي تشاين 7 سبتمبر (بقلم: صغير)" +
اليوم في منتصف الليل، نشر طالب جو دى غوانغ من فئة هواكسياو بيان على ويبو يعبر عن ولائه لفرقة دى يون، ويقول إنه كان يعمل بشكل خاص خارج فرقة دى يون،
بسبب الخزي، لم يكن هناك اتصال لمدة عامين مع المعلم جو دى غوانغ والسيدة المعلم، وكان من المفترض أن يتم طردي من المدرسة، لكن تم تقديم الرحمة من قبل المعلم جو دى غوانغ غير المستسلم.
تم نشر هذا المقال من قبل جو دى غوانغ مع نص "فمن يمكنه تحسين الذنب هو الأفضل". بالإضافة إلى الحادثة الأخيرة بين تشاو يونج جين وهاو يونغ وي،
إذا استمرت النزاعات بين جو دى غوانغ وطلابه كما هي، فمن المحتمل أن يكون من الصعب إتمامها بشكل كامل.</p><p>  نص المقالة على حساب هواكسياو على ويبو: " +
</b></p><p>  تم الالتحاق بفرقة هواكسياو في عام 2006 وتم تسميتي "هواكسياو"، في 13 يونيو 2009، تم استقبالي كمعلم من قبل السيد جو دى غوانغ.
خلال السنوات القليلة، استخدمت في دى يون للأكل، والإقامة، والتعلم، والمعلم والسيدة المعلم لم يأخذوا أي أموال. في عام 2010، أعطاني المعلم والسيدة المعلم هدية نقودية وحقائب الزفاف،
وقدم لنا معلم النشاط والسيدة المعلم بيت الزوجية في قاعدة دى يون. في سبتمبر 2014، بسبب أسباب شخصية، ذهبت إلى الخارج بشكل غير قانوني للتنمية. لاحقاً، عادت إلى العاصمة واشمت بالخزي في مواجهة المعلم الكبير،
لم أرى المعلم الكبير لمدة عامين. بعد ذلك، إلى شنغهاي للتنمية، في أغسطس 2016، خلال عرض المعلم الكبير في شنغهاي، أجريت شجاعة للتعرف على المعلم الكبير.
وقد أغفر لي المعلم الكبير. في الوقت الذي عادت إلى العاصمة بعد شهرين، ذهبت إلى المنزل لرؤية السيدة المعلم، واطلبتها بالتسامح. ومع الخطأ الذي ارتكبه هواكسياو،
هذا يمكن أن يؤدي إلى "الصف الأبيض"، في الوقت الذي يتم إعادة تأسيس سجلات عائلة دى يون، تم تقديم الرحمة من قبل المعلم غير المستسلم، وإعطاء "التحقق من الملاحظة المؤقتة" يعتبر رحمة للطالب.
"الذنب خلفي خلفي يقدر تعليم معلمي الكبير وحنانه. خلفي خلفي، على الرغم من أنني على بعد آلاف الأميال من العاصمة، سأكون دائمًا قلبًا واحدًا مع داويان." +}}
"لم أنسى تعليمات معلمي الكبير، وأعمل بجد في الفن وأكون شخصًا جيدًا! أتمنى لمعلمي ومعلمتي الصحة والسلامة! خادمي خلفي خلفي يبعد عني ألف ميل، لكن سأكون دائمًا قلبًا واحدًا مع داويان."</p>";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.main_webview);
WebSettings webSettings = webView.getSettings();
webSettings.setDefaultTextEncodingName("UTF-8");
webView.loadData(body, "text/html; charset=UTF-8", null);
}
}

ما ذكرته أعلاه هي طريقة استخدام مكونات الأندرويد الأصلية WebView لتحميل صفحات الويب والبيانات التي قدمتها لكم المحرر، آمل أن تكون مفيدة لكم، إذا كان لديكم أي أسئلة، فلا تترددوا في ترك تعليق، وسأقوم بالرد على رسائلكم في أقرب وقت، وأشكركم أيضًا على دعمكم لموقع呐喊 لتعليم البرمجة!

إعلان: محتوى هذا المقال تم جمعه من الإنترنت، ويحق لصاحب الحقوق الحصول عليه، تم جمع المحتوى من قبل المستخدمين على الإنترنت وتم تحميله بشكل تلقائي، هذا الموقع لا يملك حقوق الملكية، لم يتم تعديل المحتوى بشكل يدوي ولا يتحمل المسؤولية القانونية المتعلقة بذلك. إذا اكتشفت محتوى مخالف لحقوق النسخ، فلا تتردد في إرسال بريد إلكتروني إلى: notice#oldtoolbag.com (عند إرسال البريد الإلكتروني، يرجى استبدال # بـ @) للإبلاغ، وقدم الدليل على ذلك، وسيتم حذف المحتوى المزعوم فور التحقق منه.

تحب أن ترى