【发布时间】:2021-11-25 22:46:19
【问题描述】:
我正在尝试使用 onesignal 来实现 webview 以获取通知。 我需要通过将 JavaScript 代码插入到我的 webview 页面来将一个信号设备 ID 传递给服务器(我为 LOGIN 按钮分配了一个将设备 ID 发送到服务器的 JS 函数)。为此,我使用以下代码:
public void onPageFinished(WebView view, String url) {
// get device id
OSDeviceState deviceState = OneSignal.getDeviceState();
String oneSignalDeviceID = deviceState != null ? deviceState.getUserId() : null;
// create string with oneSignalDeviceID
String jsCodeInsert =
"javascript:document.getElementById('wp-submit').onclick = function() { jQuery.post( ajax_object.ajax_url, {action: 'onesignal_add', id: '" + oneSignalDeviceID + "', mode: 'mymode'}, function( response ) {console.log(response);});} ";
view.loadUrl(jsCodeInsert);
}
问题
通常oneSignalDeviceID 包含null 值而不是正确的ID。据我了解,当它包含null 时,onesignal 并没有为用户创建ID。
在这种情况下,最简单的解决方案是什么?
我认为最简单的做法是在 oneSignalDeviceID 准备好之前(不是 null)启动 webview,但是,我不知道该怎么做。
【问题讨论】:
标签: android webview push-notification onesignal