5 javascript php android firebase firebase-cloud-messaging
我目前有一个 Android 应用程序,可以在 WebView 中加载我的网站。
WebView browserView;
browserView.loadUrl(URL);
Run Code Online (Sandbox Code Playgroud)
我还实现了 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) {}
}
}
Run Code Online (Sandbox Code Playgroud)
运行时sendRegistrationToServer(),我的 API 会使用当前 Android 设备的 ID 填充表格。这是一张图片:
user_id问题是,在该人通过 Android WebView 登录网站之前,我无法获取。您可能会猜到,这意味着我不知道哪个设备与哪个用户关联。这是向某些用户发送推送通知时出现的问题。
有人知道这个问题的解决方案吗?
注意:我已经讨论过制作原生 Android 应用程序,但不想这样做。我也想过简单地在 Chrome 或 Firefox 等本机网络浏览器中加载网站,但是,我也不想这样做。
思考:当用户登录网站并传递密码时,是否可以“触发”Android 应用程序中的某个功能user_id?
更多想法:我可以使用 WebView 来完成此任务吗addJavascriptInterface()?
小智 1
使用我在评论中的解决方案解决了它。我使用的函数addJavascriptInterface()是 Android WebView 类的一部分。通过使用它,我可以在登录网站后回调我的 Android 应用程序。然后,我调用 API 并传递用户 ID 和设备 ID。
| 归档时间: |
|
| 查看次数: |
2819 次 |
| 最近记录: |