当前位置: 首页 > 知识库问答 >
问题:

将通知推送到IOS发出代号1

狄法
2023-03-14
    String GOOGLE_SERVER_KEY = "********************************************";
    HttpsURLConnection connection;
    String url = "https://push.codenameone.com/push/push"; 
    String TOKEN = "******-****-*****-*****-**************";
    String URL_ENCODED_LINK_TO_YOUR_P12_FILE =
        "https://dl.dropboxusercontent.com/*/******************/Certificates.p12";
    String URL_ENCODED_CERTIFICATE_PASSWORD = "******";

    String deviceId =
        "cn1-gcm-*******************************************************";
    String deviceId2 =
        "cn1-ios-***************************************************";
    String MESSAGE_BODY = "This notification  message coming from server";
    try {

        connection = (HttpsURLConnection)new URL(url).openConnection();
        connection.setDoOutput(true);
        connection.setRequestMethod("POST");
        connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
        String query =
            "token=" + TOKEN + "&device=" + deviceId + "&device=" +
            deviceId2 + "&type=1&auth=" + GOOGLE_SERVER_KEY +
            "&certPassword=" + URL_ENCODED_CERTIFICATE_PASSWORD +
            "&cert=" + URL_ENCODED_LINK_TO_YOUR_P12_FILE + "&body=" +
            URLEncoder.encode(MESSAGE_BODY, "UTF-8") + "&production=false";
        try {
            OutputStream output = connection.getOutputStream();
            output.write(query.getBytes("UTF-8"));
        } catch (Exception e) {
            e.printStackTrace();
        }

        System.out.println("ResponseCode : " + connection.getResponseCode());
        System.out.println("ResponsenMessage : " +
                           connection.getResponseMessage());
        BufferedReader br =new BufferedReader(new InputStreamReader((connection.getInputStream())));

        String output;
        String result = "";
        System.out.println("Output  .... \n");
        while ((output = br.readLine()) != null) {
            System.out.println(output);
            result += output + "\n";
        }

        connection.disconnect();
    } catch (Exception e) {
        e.printStackTrace();
    }

{“错误”:“无法将push发送到APNS:com.NotNoop.Exceptions.NetworkIOException:javax.net.ssl.SSLHandShakeException:握手期间远程主机关闭连接”}

共有1个答案

包和泰
2023-03-14

握手异常通常意味着由于安全问题,代码为1的服务器无法连接。这很可能意味着你的P12是不正确的。

你确定你用对了P12文件吗?请记住,有2个推送证书(不要与2个签名证书混淆),根据沙箱标志的值,只应使用其中的一个。

是否使用了证书向导?

 类似资料:
  • 问题内容: 我已经在项目中实现了推送通知,到目前为止一切正常。我尝试过通过Pusher发送通知,但效果很好。但是我必须通过PHP发送它们,但尚无法使用。我发现了许多有关如何实现此目标的旧解释,但似乎没有一个对我有用。 这就是我要使用的方法: 问题答案: 尝试使用此php脚本,确保.pem证书在运行时以与该php脚本相同的路径退出,并获得正确的设备令牌

  • 我无法通过parse.com正确设置推送通知。我相信我的推送是因为它们通过解析显示在我的推送日志中。但是,无论我的推送发送到哪里(app或仪表盘),“发送的推送”总是显示0。我知道这可能是一个复杂的任务,所以任何帮助将是非常感谢!下面是我的代码: AppDelegate.m InboxTableViewController.m ViewDidLoad

  • 我的AWS社交网络停止向我的iOS订阅者发送推送通知,我正在试图了解原因。所以我从零开始,目标是向我的测试设备发送1个通知。 我已经做了以下工作: 在iOSDev Portal上创建新的Apple推送服务类型的新证书,而不是旧的APNsiOS生产,导入到钥匙串,导出证书和私钥,按照AWS SNS APNS说明中的说明将其添加到AWS。 已确认此新APNS证书显示在门户上我的应用ID的“生产SSL证

  • 我试图弄清楚Firebase如何连接到特定设备并向其发送消息。我现在如何使用Firebase和从我的后端服务器向注册的设备发送通知,但我不知道它是如何在内部工作的。firebase服务器是否使用设备和服务器之间的持久连接?它用的是什么技术? 目前,我最感兴趣的是Android设备,以及firebase如何唤醒设备,即使有后台任务限制。

  • 我们正在尝试在我们的一个应用程序上实现推送通知。 对于Andriod,我们使用Firebase注册,下载google-services.json文件并将其添加到我们的native/Andriod目录。 在模拟器上一切正常,但在Andriod设备上,推入注册失败,错误代码为0,INVALID_PARAMETERS(由pushRegistrationError回调方法给出)。

  • 我已经设置了一个启用推送通知的iOS应用程序。 我可以将消息推送到应用程序,例如,徽章计数工作并相应更新。 但是我从来没有在锁屏或其他地方看到标准的推送通知弹出窗口,尽管手机会震动,所以信息可以通过。 即使应用程序关闭或不在后台。 这是有效载荷: