我目前有一个安卓应用程序,它在WebView中加载我的网站。
WebView browserView;
browserView.loadUrl(URL);
我还实现了Firebase Cloud Messaging,这样我就可以使用推送通知。
public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService {
@Override
public void onTokenRefresh() {
// Get updated InstanceID token.
String refreshedToken = FirebaseInstanceId.getInstance().getToken();
// Send the token to the server
sendRegistrationToServer(refreshedToken);
}
private void sendRegistrationToServer(String refreshedToken) {
try {
URL url = new URL(URL + "/API.php");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
DataOutputStream wr = new DataOutputStream(
conn.getOutputStream());
wr.writeBytes("action=insertDeviceID&deviceID=" + refreshedToken);
wr.flush();
wr.close();
InputStream is = conn.getInputStream();
BufferedReader rd = new BufferedReader(new InputStreamReader(is));
is.close();
rd.close();
} catch(Exception e) {}
}
}
当运行
sendRegistrationToServer()
时,我的API会用当前Android设备的ID填充一个表格。下面是一张图片:
![enter image description here](https://istack.dev59.com/ZpeO0.webp)
user_id
。你可能已经猜到了,这意味着我不知道哪个设备与哪个用户相关联。这对于向特定用户发送推送通知是一个问题。有人知道解决这个问题的方法吗?
注意:我已经考虑过制作本机Android应用程序,并且不想这样做。我也考虑过在像Chrome或Firefox这样的本机Web浏览器中加载网站,但我也不想这样做。
思路:当用户在网站上登录并传递
user_id
时,是否可能在Android应用程序中“触发”函数?更多思路:我能否使用WebView的
addJavascriptInterface()
来实现这一点?