1.android.os.FileUriExposedException
intent传递Uri内容过长
在你的Application中添加:
if (Build.VERSION.SDK_INT>=18) {
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
builder.detectFileUriExposure();
}
2.weex sdk版本
https://mvnrepository.com/artifact/com.taobao.android/weex_sdk?repo=jcenter
weex sdk 分apache和taobao两个包
我这里只发taobao的包,关于apache的地址,我从网上只能找到最新版本的sdk地址。
纠错:
今天发现apache下面的weexsdk包的包名是不一样的,有没有小伙伴遇到我的问题,已经哭晕。
apache/weex 的sdk_legacy 就是以taobao命名的包,之前都没有注意到,这操作太骚了!


3.weex 使用box-shadow 出现绘制问题
sdk版本:0.20.0.2
apache/incubator-weex 问题单号 #1648
解决办法:让其颜色与视图重叠部分保持一致,使用同一个色调,通过修改透明度,让颜色跟UI效果保持一致
4.初试EEUI热更新
【热更新文档】https://eeui.app/update/
【热更新管理后台】:https://console.eeui.app/#/manage/apps/update
这里面要说的是关于热更新补丁的问题:将dist目录下的所有文件打包,不包含dist目录
5.安装cnpm时没有权限
/usr/local 目录没有访问权限
修改npm包所安装目录的权限:
sudo chown -R $USER /usr/local
然后输入密码就可以了
查看目录是否已切换权限:
ls -l /usr/local
接下来可以进行cnpm全局包安装:
npm install -g cnpm --registry=https://registry.npm.taobao.org
5.关于EEUI中android 的stream module不支持put,delete方式body传值
这里要强调一下,这个问题不是eeui的问题,而是weex sdk的问题,eeui是对weex sdk 的二次开发封装。
这里可以通过WEEX SDK 提供的setHttpAdapter替换方案解决
1.在eeui的framework所在模块的build文件下添加依赖:
api ('com.github.zjutkz:Weex-OkHttp-Adapter:1.1'){
//这个库以前的sdk版本是0.10.0太旧了不用了
exclude group: 'com.taobao.android'
exclude group: 'com.squareup.okhttp3'
}
2.OkHttpAdapter.java
package app.eeui.framework.extend.adapter;
import android.text.TextUtils;
import com.taobao.weex.adapter.IWXHttpAdapter;
import com.taobao.weex.common.WXRequest;
import com.taobao.weex.common.WXResponse;
import com.zjutkz.progress.IncrementaRequestBody;
import com.zjutkz.progress.IncrementalResponseBody;
import com.zjutkz.progress.listener.RequestListener;
import com.zjutkz.progress.listener.ResponseListener;
import com.zjutkz.utils.Assert;
import java.io.IOException;
import java.util.Set;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Headers;
import okhttp3.Interceptor;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
public class OkHttpAdapter implements IWXHttpAdapter {
private static final String METHOD_GET = "GET";
private static final String METHOD_POST = "POST";
public static final int REQUEST_FAILURE = -100;
@Override
public void sendRequest(final WXRequest request, final OnHttpListener listener) {
if (listener != null) {
listener.onHttpStart();
}
RequestListener requestListener = new RequestListener() {
@Override
public void onRequest(long consumed, long total, boolean done) {
if (Assert.checkNull(listener)) {
listener.onHttpUploadProgress((int) (consumed));
}
}
};
final ResponseListener responseListener = new ResponseListener() {
@Override
public void onResponse(long consumed, long total, boolean done) {
if (Assert.checkNull(listener)) {
listener.onHttpResponseProgress((int) (consumed));
}
}
};
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(new Interceptor() {
@Override
public Response intercept(Interceptor.Chain chain) throws IOException {
Response originalResponse = chain.proceed(chain.request());
return originalResponse.newBuilder()
.body(new IncrementalResponseBody(originalResponse.body(), responseListener))
.build();
}
})
.build();
Request okHttpRequest;
if (METHOD_GET.equalsIgnoreCase(request.method)) {
okHttpRequest = new Request.Builder()
.headers(AddHeaders(request))
.url(request.url)
.get()
.build();
} else if (METHOD_POST.equalsIgnoreCase(request.method)) {
okHttpRequest = new Request.Builder()
.headers(AddHeaders(request))
.url(request.url)
.post(new IncrementaRequestBody(RequestBody.create(MediaType.parse(request.body), request.body), requestListener))
.build();
} else if (!TextUtils.isEmpty(request.method)) {
okHttpRequest = new Request.Builder()
.headers(AddHeaders(request))
.url(request.url)
.method(request.method, new IncrementaRequestBody(RequestBody.create(MediaType.parse(request.body), request.body), requestListener))
.build();
} else {
okHttpRequest = new Request.Builder()
.headers(AddHeaders(request))
.get()
.url(request.url)
.build();
}
client.newCall(okHttpRequest).enqueue(CommonCallBack(listener));
}
private boolean requestSuccess(int statusCode) {
return statusCode >= 200 && statusCode <= 299;
}
private Headers AddHeaders(WXRequest request) {
Headers.Builder builder = new Headers.Builder();
if (request.paramMap != null) {
Set<String> keySets = request.paramMap.keySet();
for (String key : keySets) {
builder.add(key, request.paramMap.get(key));
}
}
return builder.build();
}
private Callback CommonCallBack(final OnHttpListener listener) {
return new Callback() {
@Override
public void onFailure(Call call, IOException e) {
if (Assert.checkNull(listener)) {
WXResponse wxResponse = new WXResponse();
wxResponse.errorCode = String.valueOf(REQUEST_FAILURE);
wxResponse.statusCode = String.valueOf(REQUEST_FAILURE);
wxResponse.errorMsg = e.getMessage();
}
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (Assert.checkNull(listener)) {
WXResponse wxResponse = new WXResponse();
wxResponse.statusCode = String.valueOf(response.code());
if (requestSuccess(Integer.parseInt(wxResponse.statusCode))) {
wxResponse.originalData = response.body().bytes();
} else {
wxResponse.errorCode = String.valueOf(response.code());
wxResponse.errorMsg = response.body().string();
}
listener.onHttpFinish(wxResponse);
}
}
};
}
}
3.在eeui.java 的175行添加
Builder mBuilder = new Builder();
mBuilder.setImgAdapter(new ImageAdapter());
mBuilder.setHttpAdapter(new OkHttpAdapter());//添加这行代码
mBuilder.setDrawableLoader(new DrawableLoader(app));
WXSDKEngine.initialize(application, mBuilder.build());
6.从Welcome页面跳转到Page页面,状态栏字体颜色修改

修改状态栏字体颜色

4572

被折叠的 条评论
为什么被折叠?



