首页 > 解决方案 > 如何使用来自 android 活动的 Firebase 数据库字符串更新 html 页面的 div

问题描述

我从 Firebase 数据库中检索用户名和电子邮件地址作为我的htmlActivity. 有什么方法可以将这两个字符串发送到 WebView 组件中显示div的我的字符串中?index.html

将整个页面的 html 数据发送到 WebView 组件有不同的示例,但我只想更新我已经设计的 html 页面的一个 div。

这是我尝试过的,但它不会从字符串中更改 innerHTML。

index.html的是:

<!DOCTYPE html> 
<body>
   <div id="replace1">UserName</div>
   <div id="replace2">Email</div> 
</body>
</html>

这是我的htmlActivity

public class SmartActivity extends Activity implements AdvancedWebView.Listener {
    private AdvancedWebView mWebView;
    private FirebaseAuth mAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_smart);

        mAuth = FirebaseAuth.getInstance();

        mWebView = (AdvancedWebView) findViewById(R.id.webview);
        mWebView.loadUrl("file:///android_asset/home.html");
        mWebView.getSettings().setJavaScriptEnabled(true);
        getUserProfile();
    }

    public void getUserProfile() {
        FirebaseUser user = mAuth.getCurrentUser();
        String userID = user.getUid();
        if (user != null) {
            DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("Users");
            ref.child(userID).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    String username = dataSnapshot.child("name").getValue().toString();
                    String email = user.getEmail();
                    mWebView.setWebViewClient(new WebViewClient() {

                        @Override
                        public void onPageFinished(WebView web, String url) {
                            String text1 = "UserName";
                            String text2 = username;
                            web.loadUrl("javascript:(function(){document.body.innerHTML = document.body.innerHTML.replace('" + text1 + "', '" + text2 + "')})()");
                        }
                    });
                }
                @Override
                public void onCancelled(DatabaseError firebaseError) {

                }
            });
        }
    }
}

如何发送这两个字符串以使用用户的姓名和电子邮件地址更新索引 html 的 div?

标签: javascriptandroidfirebasefirebase-realtime-database

解决方案


推荐阅读