我的图像和许多其他功能都位于我的后端API(用java spark框架编写)之后。这些服务仅限https,API通常执行其他功能(例如,它们不只是提供静态图像)。
在React-native javascript表单中,我做
const imageTest='https://10.0.1.10:4567/api/v1/get-image-simple/full-size/myImage.jpg/'
<Image source={{uri : imageTest}}
style={theme.cardImageStyle}
/>
这不起作用,因为我的服务器使用自签名证书 (还需要一些明确的标题)。
相同类型的图片网址链接,从我的Android主机内工作正常(我的应用程序是混合一些活动只有android,有些是反应原生)。 我的Android应用程序有自定义的okhttp客户端,具有所有必要的设置,通过HTTPs与我的apis通信。
我找不到一个如何将我的OkHTTP客户端挂钩到本机的示例/参考,以便一切都通过那里。 我曾见过各种错误报告,例如this,但似乎无法找到有关反应原生版本中实际内容的任何文档。
我试着盲目地做了
com.facebook.react.modules.network.OkHttpClientProvider.replaceOkHttpClient(
MyPersonalAppInstance.getApplicationComponent().okHttpClient());
但它似乎没有做任何事情;
答案 0 :(得分:4)
我没有机会对此进行测试,但根据[this issue][1]
的讨论,以下内容应该在0.54+中设置自定义OkHttp客户端。
创建React Native应用程序并在构造函数中设置自定义工厂,例如OkHttpClientProvider.setOkHttpClientFactory(new CustomNetworkModule());
自定义工厂的外观如下:
class CustomNetworkModule implements OkHttpClientFactory {
public OkHttpClient createNewNetworkModuleClient() {
return new OkHttpClient.Builder()
.cookieJar(new ReactCookieJarContainer())
.build();
}
}
以上内容基于this commit的信息。