从mobilefirst http适配器

时间:2015-09-25 20:29:22

标签: ibm-mobilefirst mobilefirst-adapters

我在mobilefirst适配器(6.3)中工作,需要从internarl网络文件系统中的url传递图像(例如:http://www.up.edu.pe/RED_Compartir/facebook.png)但我无法正确获取数据,img数据不是在文本变量中: 这是我的服务器端代码:

    function getImage(id){
            var input = {
                    method : 'get',
                    returnedContentType : 'plain',
                    path : '/someUrl/someUrl2/'+id+'.jpg'
                };
            return  {
                out: Base64.encode(WL.Server.invokeHttp(input).text)
            };
        }

以下是处理de image的客户端代码:

function getImageFrom() {
    execMobileFirstAdapter("adapterName", "method", ["parameter"]).then(function (data){
        WL.Logger.debug("OK")
        var imageBase = data.invocationResult.out;
        document.getElementById('imageServer').setAttribute( 'src', 'data:image/jpeg;base64,'+ imageBase );
    }).fail(function(data){
        WL.Logger.debug("error");
    })

}

有没有办法从mobilefirst适配器的jpg图像返回base64?

我用过这个例子: https://www.ibm.com/developerworks/community/blogs/mobileblog/entry/ibm_worklight_adapter_accessing_an_image?lang=en

并且工作完美,但我只需要在服务器中使用JavaScript。这是可能的吗?

1 个答案:

答案 0 :(得分:0)

  

有没有办法从一个jpg图像返回base64   mobilefirst适配器?

     

我用过这个例子:   https://www.ibm.com/developerworks/community/blogs/mobileblog/entry/ibm_worklight_adapter_accessing_an_image?lang=en

     

和完美的工作,但我只需要使用JavaScript中的这个   服务器。这有可能吗?

最简单的方法实际上是按照您提供的文章中示例的方式实现它。

唯一的另一种方法是找到一个执行base64编码的JavaScript库,并尝试将此lib添加到适配器然后使用它。

请注意,JavaScript适配器不支持向适配器添加其他文件,因此这意味着您需要执行您将找到的任何lib的完整实现并将其放入适配器代码中。不太好。也不保证它会起作用。

此外,您是否从Cordova插件内部调用适配器?那很奇怪。为什么?为什么不直接使用WL.Client.invokeProcedure API ......就像文章......

一样