【问题标题】:Where can i get the IPhone 11 Skin for CN1 Simulator?我在哪里可以获得 CN1 模拟器的 iPhone 11 皮肤?
【发布时间】:2020-05-02 17:30:58
【问题描述】:

AppStore 现在要求其 6.5 英寸元数据图像使用 iPhone 11(或高 iPhone X)皮肤。请有人指出我的方向,以便在我的 Codenameone 模拟器中使用。

我正在安装最新版本 (CN1 v6),在我的 .codenameone 文件夹中最多有 IPhoneX.skin,但我想尽可能多地证明未来,所以选择 11。谢谢

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    尽管您可以在here 上提交 RFE,但我们还没有 iPhone 11 皮肤。但这对大多数人来说并不重要。

    大多数人使用这些工具以便携的方式生成屏幕截图:

    【讨论】:

    • 如果我正确理解了这个问题,问题是要获得与 iPhone 11 生成的截图完全相同的屏幕截图(完全相同的分辨率和相同的 UI),但没有拥有 iPhone 11。我添加了一个答案来实现这一点。
    • 可能,但这不是 Apple 的要求。从他们的网站上看不清楚。虽然答案很有趣!
    【解决方案2】:

    我遇到了同样的问题。我使用不同的方法来获取一个或多个屏幕截图根据商店的要求。简而言之,我在“Browser Stack App Live(具有多个真实设备,例如所需的 iPhone 11)上执行应用程序,使用以编程方式向我发送应用程序的一个或多个屏幕截图的代码,使用一个 REST 请求。

    请注意,在 Browser Stack App Live 上无法发送电子邮件,这就是我创建自己的 REST API 来上传屏幕截图的原因。

    很简单,我在分享之前测试了以下解决方案。在安装了 Apache + PHP 的临时 VPS 上,或者在您的本地计算机上(如果您有公共 IP)上,创建以下 upload.php,记住使用您的实际 url 更新 $server_url

    <?php 
    header('Content-Type: application/json; charset=utf-8');
    header("Access-Control-Allow-Origin: *");
    header("Access-Control-Allow-Methods: PUT, GET, POST");
    $response = array();
    $upload_dir = 'uploads/';
    $server_url = 'https://www.example.com/mydir/';
    if($_FILES['screenshot'])
    {
        $screenshot_name = $_FILES["screenshot"]["name"];
        $screenshot_tmp_name = $_FILES["screenshot"]["tmp_name"];
        $error = $_FILES["screenshot"]["error"];
        if($error > 0){
            $response = array(
                "status" => "error",
                "error" => true,
                "message" => "Error uploading the file!"
            );
        }else 
        {
            $random_name = rand(1000,1000000)."-".$screenshot_name;
            $upload_name = $upload_dir.strtolower($random_name);
            $upload_name = preg_replace('/\s+/', '-', $upload_name);
    
            if(move_uploaded_file($screenshot_tmp_name , $upload_name)) {
                $response = array(
                    "status" => "success",
                    "error" => false,
                    "message" => "File uploaded successfully",
                    "url" => $server_url."/".$upload_name
                  );
            }else
            {
                $response = array(
                    "status" => "error",
                    "error" => true,
                    "message" => "Error uploading the file!"
                );
            }
        }
    
    }else{
        $response = array(
            "status" => "error",
            "error" => true,
            "message" => "No file was sent!"
        );
    }
    echo json_encode($response);
    ?>
    

    之后,mkdir uploadschown 相应地获得 php 文件和上传目录的权限。 服务器已准备就绪。

    在您的应用上,添加以下方法(记得更改String url 的值):

    public static void sendMeScreenshot() {
            Form form = Display.getInstance().getCurrent();
            if (form != null) {
                try {
                    Image screenshot = Image.createImage(form.getWidth(), form.getHeight());
                    form.paintComponent(screenshot.getGraphics(), true);
                    String file = FileSystemStorage.getInstance().getAppHomePath() + "/screenshot_" + System.currentTimeMillis() + ".png";
                    OutputStream output = FileSystemStorage.getInstance().openOutputStream(file);
                    ImageIO.getImageIO().save(screenshot, output, ImageIO.FORMAT_PNG, 1.0f);
    
                    String url = "https://www.example.com/mydir/upload.php";
                    MultipartRequest request = new MultipartRequest();
                    request.setUrl(url);
                    request.addData("screenshot", file, "multipart/form-data");
                    NetworkManager.getInstance().addToQueue(request);
                } catch (IOException ex) {
                    Log.e(ex);
                }
            }
        }
    

    最后,使用UITimer.timer(5000, false, hi, () -&gt; sendMeScreenshot()); 之类的代码在所需时间后获取您感兴趣的表单的屏幕截图。

    在模拟器中测试,它应该可以工作。添加一些日志记录并在网络监视器中检查返回的 JSON。如果一切正常,请使用 Browser Stack App Live 打开您的应用,选择所需的设备(在本例中为 iPhone 11)。您将在您的 VPS 的所选upload 目录中找到屏幕截图(或多个屏幕截图)。您可以使用scp 下载或直接在浏览器中打开。

    如果您没有所需的设备,此解决方案很有用,但请记住不要让您的 upload.php 在线,以免出现安全问题。

    【讨论】:

      猜你喜欢
      • 2012-03-06
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-20
      • 2012-07-28
      • 2018-02-10
      • 1970-01-01
      相关资源
      最近更新 更多