将网站转换为应用程序似乎是在Android上完成的一项基本任务。借助WebView,我们可以在Android应用程序中显示任何网页。我们只需要实现WebView的小部件,并在我们必须加载的WebView内添加URL。因此,如果您希望将网站加载到您的应用程序中,并且可以在不重新格式化代码的情况下对其进行动态更改,那么根据我们的要求动态更新我们的WebView应用程序将变得更加容易。因此,在本文中,我们将介绍在Android中使用Firebase在应用程序中实现动态WebView的方法。
我们将在本文中构建什么?
在本文中,我们将构建一个简单的应用程序,在其中创建一个简单的WebView,并从Firebase Realtime Database加载WebView的URL。因此,如果我们想更改WebView的URL,我们可以轻松更改WebView的URL,它将在我们的应用程序内自动更新。注意,我们将使用Java语言实现该项目。
分步实施
步骤1:创建一个新项目
要在Android Studio中创建新项目,请参阅如何在Android Studio中创建/启动新项目。请注意,选择Java作为编程语言。
第2步:将您的应用连接到Firebase
创建新项目后。导航到顶部栏上的“工具”选项。在里面单击Firebase。单击Firebase后,您可以在屏幕快照中看到下面提到的右列。
在该列内,导航到Firebase实时数据库。单击该选项,您将在“将应用程序连接到Firebase”和“将Firebase实时数据库添加到您的应用程序”中看到两个选项。单击立即连接,您的应用程序将连接到Firebase。之后,单击第二个选项,现在您的应用已连接到Firebase。
完成此过程后,您将看到以下屏幕。
现在,验证您的应用是否已连接到Firebase。转到您的build.gradle文件。导航至应用程序> Gradle脚本> build.gradle文件,并确保在依赖项部分中添加了以下依赖项。
implementation ‘com.google.firebase:firebase-database:19.6.0’
如果上述依赖项未添加到“依赖项”部分中。添加此依赖性并同步您的项目。现在,我们将转向应用程序的XML部分。
步骤3:使用activity_main.xml文件
转到activity_main.xml文件,并参考以下代码。以下是activity_main.xml文件的代码。
XML
XML
Java
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class MainActivity extends AppCompatActivity {
// creating a variable for our Firebase Database.
FirebaseDatabase firebaseDatabase;
// creating a variable for our Database
// Reference for Firebase.
DatabaseReference databaseReference;
// creating a variable for our webview
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initializing variable for web view.
webView = findViewById(R.id.idWebView);
// below line is used to get the instance
// of our Firebase database.
firebaseDatabase = FirebaseDatabase.getInstance();
// below line is used to get reference for our database.
databaseReference = firebaseDatabase.getReference("url");
// calling method to initialize
// our web view.
initializeWebView();
}
private void initializeWebView() {
// calling add value event listener method for getting the values from database.
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
// this method is call to get the realtime updates in the data.
// this method is called when the data is changed in our Firebase console.
// below line is for getting the data from snapshot of our database.
String webUrl = snapshot.getValue(String.class);
// after getting the value for our webview url we are
// setting our value to our webview view in below line.
webView.loadUrl(webUrl);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
// calling on cancelled method when we receive
// any error or we are not able to get the data.
Toast.makeText(MainActivity.this, "Fail to get URL.", Toast.LENGTH_SHORT).show();
}
});
}
}
步骤4:在您的AndroidManifest.xml文件中添加互联网权限
在AndroidManifest.xml文件中添加Internet权限。
XML格式
步骤5:使用MainActivity。 Java文件
转到MainActivity。 Java文件并参考以下代码。下面是MainActivity的代码。 Java文件。在代码内部添加了注释,以更详细地了解代码。
Java
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class MainActivity extends AppCompatActivity {
// creating a variable for our Firebase Database.
FirebaseDatabase firebaseDatabase;
// creating a variable for our Database
// Reference for Firebase.
DatabaseReference databaseReference;
// creating a variable for our webview
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initializing variable for web view.
webView = findViewById(R.id.idWebView);
// below line is used to get the instance
// of our Firebase database.
firebaseDatabase = FirebaseDatabase.getInstance();
// below line is used to get reference for our database.
databaseReference = firebaseDatabase.getReference("url");
// calling method to initialize
// our web view.
initializeWebView();
}
private void initializeWebView() {
// calling add value event listener method for getting the values from database.
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
// this method is call to get the realtime updates in the data.
// this method is called when the data is changed in our Firebase console.
// below line is for getting the data from snapshot of our database.
String webUrl = snapshot.getValue(String.class);
// after getting the value for our webview url we are
// setting our value to our webview view in below line.
webView.loadUrl(webUrl);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
// calling on cancelled method when we receive
// any error or we are not able to get the data.
Toast.makeText(MainActivity.this, "Fail to get URL.", Toast.LENGTH_SHORT).show();
}
});
}
}
将此代码添加到您的应用程序之后。现在转到Firebase,然后单击右上角的“转到控制台”选项。
单击此屏幕后,您将看到下面的屏幕,其中包含您选择的项目的所有项目。
在该屏幕内,单击左侧窗口中的n实时数据库。
单击此选项后,您将看到右侧的屏幕。在此页面上,单击顶部栏中的“规则”选项。您将看到以下屏幕。
在此项目中,我们添加了适用于读取和写入的规则,因为我们没有使用任何身份验证来验证用户。因此,我们目前将其设置为true以测试我们的应用程序。更改规则后。单击右上角的“发布”按钮,您的规则将保存在此处。现在再次回到“数据”选项卡。现在,我们将从Firebase本身将数据手动添加到Firebase。
第6步:在Firebase数据库控制台中添加WebView URL
在Firebase的“数据”选项卡中,您将看到以下屏幕。将光标悬停在null上,然后单击右侧的“ +”选项,然后单击该选项。单击该选项后。添加下图中添加的数据。确保在“名称”字段中添加“ url”,因为我们在代码中将Firebase的引用设置为“ url”。因此,我们必须将其设置为“ url”。您可以更改参考,也可以在数据库中对其进行更改。在值字段内,您必须添加要加载到WebView中的网页的URL。
添加以上数据后,您将看到以下屏幕。
添加此数据后,运行您的应用程序,然后查看该应用程序的输出。运行应用程序后,您可以在Firebase控制台中检查网站网址,然后可以在WebView中查看更改。
输出:
在视频中,我们正在从Firebase更改网站URL,您可以查看应用程序中的更改。