gpt4 book ai didi

javascript - 带有 Firebase 云消息传递的 Android WebView

转载 作者:行者123 更新时间:2023-11-29 23:29:40 29 4
gpt4 key购买 nike

我目前有一个 Android 应用程序可以在 WebView 中加载我的网站。

WebView browserView;
browserView.loadUrl(URL);

我还实现了 Firebase 云消息传递,因此我可以使用推送通知。

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

问题是,在用户通过 Android WebView 登录网站之前,我无法获取 user_id。正如您可能猜到的那样,这意味着我不知道哪个设备与哪个用户相关联。这是向某些用户发送推送通知的问题。

有人知道这个问题的解决方案吗?

注意:我已经讨论过制作原生 Android 应用程序并且不想这样做。我也想过在 Chrome 或 Firefox 等 native 网络浏览器中简单地加载网站,但是,我也不想这样做。

想法:是否可以在用户登录网站并传递user_id时“触发”Android应用程序中的功能?

更多想法:我可以使用 WebView 的 addJavascriptInterface() 来完成这个吗?

最佳答案

使用我在评论中的解决方案解决了它。我使用了 addJavascriptInterface() 函数,它是 Android WebView 类的一部分。通过使用它,我可以在登录网站后回调我的 Android 应用程序。然后我调用我的 API 并传递用户 ID 和设备 ID。

关于javascript - 带有 Firebase 云消息传递的 Android WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47799902/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com