Skip to content

Commit 43686d7

Browse files
author
zhangjunling
committed
Merge branch 'dev_lucas' into 'dev_2.9.0'
程序化广告对接 See merge request Mobile/VideoOS-Android-SDK!20
2 parents 467e3fa + 6921092 commit 43686d7

File tree

21 files changed

+1999
-27
lines changed

21 files changed

+1999
-27
lines changed

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/plugin/LVTableToJsonPlugin.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package cn.com.venvy.lua.plugin;
22

3+
import com.taobao.luaview.util.JsonUtil;
34
import com.taobao.luaview.util.LuaUtil;
45

56
import org.json.JSONObject;
@@ -18,9 +19,11 @@
1819

1920
public class LVTableToJsonPlugin {
2021
private static LVTableToJsonPlugin.TableToJsonFunction mTableToJson;
22+
private static LVTableToJsonPlugin.JsonToTableFunction mJsonToTable;
2123

2224
public static void install(VenvyLVLibBinder venvyLVLibBinder) {
2325
venvyLVLibBinder.set("tableToJson", mTableToJson == null ? mTableToJson = new LVTableToJsonPlugin.TableToJsonFunction() : mTableToJson);
26+
venvyLVLibBinder.set("jsonToTable", mJsonToTable == null ? mJsonToTable = new LVTableToJsonPlugin.JsonToTableFunction() : mJsonToTable);
2427
}
2528

2629
private static class TableToJsonFunction extends VarArgFunction {
@@ -39,4 +42,16 @@ public Varargs invoke(Varargs args) {
3942
return LuaValue.NIL;
4043
}
4144
}
45+
46+
private static class JsonToTableFunction extends VarArgFunction {
47+
@Override
48+
public Varargs invoke(Varargs args) {
49+
int fixIndex = VenvyLVLibBinder.fixIndex(args);
50+
if (args.narg() > fixIndex) {
51+
String jsonStr = LuaUtil.getString(args, fixIndex + 1);
52+
return JsonUtil.toLuaTable(jsonStr);
53+
}
54+
return LuaValue.NIL;
55+
}
56+
}
4257
}

VideoOS/LuaViewSDK/src/com/taobao/luaview/userdata/kit/UDApplet.java

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,25 @@
11
package com.taobao.luaview.userdata.kit;
22

33
import android.os.Bundle;
4+
import android.text.TextUtils;
45
import android.util.Pair;
56

67
import com.taobao.luaview.fun.mapper.LuaViewLib;
78
import com.taobao.luaview.userdata.base.BaseLuaTable;
9+
import com.taobao.luaview.util.JsonUtil;
10+
import com.taobao.luaview.util.LuaUtil;
811
import com.taobao.luaview.util.VisionUtil;
912

13+
import org.json.JSONObject;
1014
import org.luaj.vm2.Globals;
15+
import org.luaj.vm2.LuaTable;
1116
import org.luaj.vm2.LuaValue;
1217
import org.luaj.vm2.Varargs;
1318
import org.luaj.vm2.lib.VarArgFunction;
1419

20+
import cn.com.venvy.CacheConstants;
1521
import cn.com.venvy.Platform;
22+
import cn.com.venvy.common.bean.WidgetInfo;
1623
import cn.com.venvy.common.observer.ObservableManager;
1724
import cn.com.venvy.common.observer.VenvyObservableTarget;
1825
import cn.com.venvy.lua.binder.VenvyLVLibBinder;
@@ -37,6 +44,9 @@ public UDApplet(Globals globals, LuaValue metatable, Platform platform) {
3744
set("canGoBack", new CanGoBack(platform));// 是否能够返回上一页
3845
set("goBack", new GoBack(platform));// 返回上一页
3946
set("closeView", new CloseView(platform));// 关闭当前容器
47+
set("setStorageData", new SetStorageData(platform));// 存储本地数据
48+
set("getStorageData", new GetStorageData(platform));// 获取本地储存的数据
49+
set("openAds", new OpenAds(platform));// 获取本地储存的数据
4050
}
4151

4252
class AppletSize extends VarArgFunction {
@@ -145,4 +155,110 @@ public Varargs invoke(Varargs args) {
145155
}
146156
}
147157

158+
159+
class SetStorageData extends VarArgFunction {
160+
private Platform platform;
161+
162+
public SetStorageData(Platform platform) {
163+
super();
164+
this.platform = platform;
165+
}
166+
167+
@Override
168+
public Varargs invoke(Varargs args) {
169+
int fixIndex = VenvyLVLibBinder.fixIndex(args);
170+
LuaValue key = args.arg(fixIndex + 2); // key
171+
LuaValue value = args.arg(fixIndex + 3); // value
172+
LuaValue fileName = args.arg(fixIndex + 4); // fileName
173+
CacheConstants.putCacheByFileName(platform.getContentViewGroup().getContext(), luaValueToString(fileName),
174+
luaValueToString(key), luaValueToString(value));
175+
return LuaValue.NIL;
176+
}
177+
178+
}
179+
180+
class GetStorageData extends VarArgFunction {
181+
182+
private Platform platform;
183+
184+
public GetStorageData(Platform platform) {
185+
super();
186+
this.platform = platform;
187+
}
188+
189+
@Override
190+
public Varargs invoke(Varargs args) {
191+
int fixIndex = VenvyLVLibBinder.fixIndex(args);
192+
LuaValue key = args.arg(fixIndex + 2); // key
193+
LuaValue fileName = args.arg(fixIndex + 3); // file sp 文件名
194+
String fileNameStr = luaValueToString(fileName);
195+
if (TextUtils.isEmpty(fileNameStr)) {
196+
// 没有传文件名,默认查询当前开发者ID对应的缓存数据
197+
String data = CacheConstants.getCacheByDeveloperId(platform.getContentViewGroup().getContext(), luaValueToString(key));
198+
return LuaValue.valueOf(data);
199+
} else {
200+
String jsonStr = CacheConstants.getVisionProgramId(platform.getContentViewGroup().getContext(), fileNameStr);
201+
return LuaValue.valueOf(jsonStr);
202+
}
203+
}
204+
}
205+
206+
class OpenAds extends VarArgFunction {
207+
private Platform platform;
208+
209+
public OpenAds(Platform platform) {
210+
super();
211+
this.platform = platform;
212+
}
213+
214+
@Override
215+
public Varargs invoke(Varargs args) {
216+
int fixIndex = VenvyLVLibBinder.fixIndex(args);
217+
if (args.narg() > fixIndex) {
218+
final LuaTable table = LuaUtil.getTable(args, fixIndex + 2);
219+
try {
220+
String str = JsonUtil.toString(table);
221+
JSONObject jsonObject = new JSONObject(str);
222+
// VenvyLog.d("openAds : " + jsonObject.toString());
223+
if (jsonObject.has("targetType")) {
224+
String targetType = jsonObject.optString("targetType");
225+
JSONObject linkData = jsonObject.optJSONObject("linkData");
226+
String downAPI = linkData.optString("linkUrl");
227+
String deepLink = linkData.optString("deepLink");
228+
// targetType 1 落地页 2 deepLink 3 下载
229+
if (targetType.equalsIgnoreCase("3")) {
230+
JSONObject downloadTrackLink = jsonObject.optJSONObject("downloadTrackLink");
231+
Bundle trackData = new Bundle();
232+
trackData.putString(VenvyObservableTarget.Constant.CONSTANT_DOWNLOAD_API, downAPI);
233+
trackData.putStringArray("isTrackLinks", JsonUtil.toStringArray(downloadTrackLink.optJSONArray("isTrackLinks")));
234+
trackData.putStringArray("dsTrackLinks", JsonUtil.toStringArray(downloadTrackLink.optJSONArray("dsTrackLinks")));
235+
trackData.putStringArray("dfTrackLinks", JsonUtil.toStringArray(downloadTrackLink.optJSONArray("dfTrackLinks")));
236+
trackData.putStringArray("instTrackLinks", JsonUtil.toStringArray(downloadTrackLink.optJSONArray("instTrackLinks")));
237+
ObservableManager.getDefaultObserable().sendToTarget(VenvyObservableTarget.TAG_DOWNLOAD_TASK, trackData);
238+
239+
} else {
240+
// 走Native:widgetNotify() 逻辑
241+
WidgetInfo.Builder builder = new WidgetInfo.Builder()
242+
.setWidgetActionType(WidgetInfo.WidgetActionType.ACTION_OPEN_URL);
243+
if (targetType.equalsIgnoreCase("1")) {
244+
builder.setLinkUrl(downAPI);
245+
} else if(targetType.equalsIgnoreCase("2")){
246+
builder.setDeepLink(deepLink);
247+
}
248+
WidgetInfo widgetInfo = builder.build();
249+
if (platform.getWidgetClickListener() != null) {
250+
platform.getWidgetClickListener().onClick(widgetInfo);
251+
}
252+
}
253+
}
254+
} catch (Exception e) {
255+
e.printStackTrace();
256+
}
257+
}
258+
return LuaValue.NIL;
259+
}
260+
261+
262+
}
263+
148264
}

VideoOS/LuaViewSDK/src/com/taobao/luaview/util/JsonUtil.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@ public static Object toJSON(LuaTable table) {
9191
} else {
9292
if (value.isboolean()) {
9393
obj.put(key, value.optboolean(false));
94+
} else if (value.isstring()) {
95+
obj.put(key, value.optstring(null));
9496
} else if (value.isint()) {
9597
obj.put(key, value.optint(0));
96-
}else if (value.isstring()) {
97-
obj.put(key, value.optstring(null));
9898
} else if (value.islong()) {
9999
obj.put(key, value.optlong(0L));
100-
} else {
100+
} else {
101101
obj.put(key, value);
102102
}
103103
}
@@ -221,4 +221,15 @@ private static LuaValue toLuaValue(Object value) {
221221
return LuaValue.NIL;
222222
}
223223
}
224+
225+
226+
public static String[] toStringArray(JSONArray array) throws JSONException {
227+
if (array == null) return new String[]{};
228+
229+
String[] args = new String[array.length()];
230+
for (int i = 0, len = array.length(); i < len; i++) {
231+
args[i] = String.valueOf(array.get(i));
232+
}
233+
return args;
234+
}
224235
}

VideoOS/VenvyLibrary/build.gradle

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ apply plugin: 'com.android.library'
22

33
android {
44
compileSdkVersion 29
5-
buildToolsVersion '25.0.3'
5+
buildToolsVersion '28.0.3'
66
defaultConfig {
7-
minSdkVersion 16
8-
targetSdkVersion 19
7+
minSdkVersion 19
8+
targetSdkVersion 28
99

1010
javaCompileOptions {
1111
annotationProcessorOptions {
@@ -35,9 +35,9 @@ android {
3535

3636
dependencies {
3737
compile fileTree(include: ['*.jar'], dir: 'libs')
38-
provided 'com.android.support:support-v4:25.3.1'
39-
provided 'com.android.support:recyclerview-v7:25.3.1'
40-
provided 'com.android.support:appcompat-v7:25.3.1'
38+
provided 'com.android.support:support-v4:28.0.0'
39+
provided 'com.android.support:recyclerview-v7:28.0.0'
40+
provided 'com.android.support:appcompat-v7:28.0.0'
4141
provided 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.0.2'
4242
compile project(':venvy_processor_annotation')
4343
annotationProcessor project(':venvy_processor_compiler')

0 commit comments

Comments
 (0)