Как реализовать push-уведомление для конкретного пользователя в приложении WebView? - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть отзывчивое веб-приложение, и я пытаюсь преобразовать его в приложение WebView, я пытаюсь реализовать push-уведомления для определенных пользователей, которые вошли в систему в WebView, это пользовательский интерфейс системы датчиков пожара, поэтому только пользователи изорганизация, в которой происходит пожар, должна быть уведомлена не всеми пользователями из разных учреждений, поскольку, очевидно, они не заинтересованы, моя проблема заключается в том, как определить устройства, которые вошли в систему в WebView, и назначить их этим пользователям для достижениямоя цель

До сих пор я пытался Jsoup извлекать электронные письма пользователей, помещенные в скрытые значения тегов ввода, но, очевидно, Jsoup запрашивает только первую страницу, открытую в WebView, я так и не нашел, как реализовать какую-тоСлушатель, который будет получать электронную почту пользователя после входа в систему, я говорю о более чем недельной пробе и ошибке

Это MainActivity моего приложения до сих пор

package com.gci.gestioncapteursincendie;

import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.InstanceIdResult;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;

public class MainActivity extends AppCompatActivity {
WebView webView;
WebViewClientImpl webViewClient;
String webView_url;

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

   //storing webView defined in activity_main.xml inside a WebView instance webView
    webView = (WebView) findViewById(R.id.webview);

    //enabling js in the WebView
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webView.setWebViewClient(webViewClient);

    //defining the website the webView loads when the app is launched
    webView.loadUrl("http://gestioncapteursincendie.herokuapp.com");
    webView_url = webView.getUrl();

    webView.setWebViewClient( new WebViewClientImpl(this){

        @Override
        public void onPageFinished(WebView view, String url) {
            super.onPageFinished(view, url);
            webView_url=webView.getUrl();
            new MyTask().execute();
        }


    });



    FirebaseInstanceId.getInstance().getInstanceId()
            .addOnCompleteListener(new OnCompleteListener<InstanceIdResult>() {
                @Override
                public void onComplete(@NonNull Task<InstanceIdResult> task) {
                  if(task.isSuccessful()){
                      String token = task.getResult().getToken();
                      System.out.println("token: "+token);
                    }
                    else
                  {
                      System.out.println("Token Not Generated");
                  }
                }
            });

    }
private class MyTask extends AsyncTask<Void, Void, String> {

    @Override
    protected String doInBackground(Void... params) {

        if(!webView_url.equals("http://gestioncapteursincendie.herokuapp.com/login") && !webView_url.equals("http://gestioncapteursincendie.herokuapp.com/")){
        Document doc = null;
        Element x = null;
        try {
            doc = Jsoup.connect(webView_url).get();
            System.out.println("SOoutput Webview url 0 = " +webView_url);

            x = doc.getElementById("loggedin");
        } catch (IOException e) {
            e.printStackTrace();
        }

        System.out.println("SOoutput Webview url= " +webView_url);
        System.out.println("SOoutput loggedin= " + x);
        System.out.println("SOoutput x val "+ x.val());
        return x.val();
        }
        return "NOTHING anymore";
    }


    @Override
    protected void onPostExecute(String result) {

        System.out.println("RESULT: "+result);
    }
}

 }

Я посмотрел вокруг, так чтобезрезультатно задавались такие вопросы, как мой, но никто не дал решения, я надеюсьэтот получает некоторое внимание и заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...