Skip to content

Commit b55f6bc

Browse files
author
zhangjunling
committed
Merge branch 'dev_lucas' into 'dev_2.9.0'
程序化广告对接 See merge request Mobile/VideoOS-Android-SDK!22
2 parents f5f732f + 4749016 commit b55f6bc

File tree

16 files changed

+1349
-150
lines changed

16 files changed

+1349
-150
lines changed

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

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import org.luaj.vm2.Varargs;
1818
import org.luaj.vm2.lib.VarArgFunction;
1919

20+
import java.util.HashMap;
21+
2022
import cn.com.venvy.CacheConstants;
2123
import cn.com.venvy.Platform;
2224
import cn.com.venvy.common.bean.WidgetInfo;
@@ -47,6 +49,7 @@ public UDApplet(Globals globals, LuaValue metatable, Platform platform) {
4749
set("setStorageData", new SetStorageData(platform));// 存储本地数据
4850
set("getStorageData", new GetStorageData(platform));// 获取本地储存的数据
4951
set("openAds", new OpenAds(platform));// 获取本地储存的数据
52+
set("openApplet", new OpenApplet());// 打开新的容器
5053
}
5154

5255
class AppletSize extends VarArgFunction {
@@ -223,7 +226,7 @@ public Varargs invoke(Varargs args) {
223226
if (jsonObject.has("targetType")) {
224227
String targetType = jsonObject.optString("targetType");
225228
JSONObject linkData = jsonObject.optJSONObject("linkData");
226-
String downAPI = linkData.optString("linkUrl");
229+
String downAPI = jsonObject.optString("downloadApkUrl");
227230
String deepLink = linkData.optString("deepLink");
228231
// targetType 1 落地页 2 deepLink 3 下载
229232
if (targetType.equalsIgnoreCase("3")) {
@@ -234,15 +237,16 @@ public Varargs invoke(Varargs args) {
234237
trackData.putStringArray("dsTrackLinks", JsonUtil.toStringArray(downloadTrackLink.optJSONArray("dsTrackLinks")));
235238
trackData.putStringArray("dfTrackLinks", JsonUtil.toStringArray(downloadTrackLink.optJSONArray("dfTrackLinks")));
236239
trackData.putStringArray("instTrackLinks", JsonUtil.toStringArray(downloadTrackLink.optJSONArray("instTrackLinks")));
240+
trackData.putString("launchPlanId",jsonObject.optString("launchPlanId"));
237241
ObservableManager.getDefaultObserable().sendToTarget(VenvyObservableTarget.TAG_DOWNLOAD_TASK, trackData);
238-
239242
} else {
240243
// 走Native:widgetNotify() 逻辑
241244
WidgetInfo.Builder builder = new WidgetInfo.Builder()
242-
.setWidgetActionType(WidgetInfo.WidgetActionType.ACTION_OPEN_URL);
245+
.setWidgetActionType(WidgetInfo.WidgetActionType.ACTION_OPEN_URL)
246+
.setUrl("");
243247
if (targetType.equalsIgnoreCase("1")) {
244248
builder.setLinkUrl(downAPI);
245-
} else if(targetType.equalsIgnoreCase("2")){
249+
} else if (targetType.equalsIgnoreCase("2")) {
246250
builder.setDeepLink(deepLink);
247251
}
248252
WidgetInfo widgetInfo = builder.build();
@@ -261,4 +265,36 @@ public Varargs invoke(Varargs args) {
261265

262266
}
263267

268+
class OpenApplet extends VarArgFunction {
269+
@Override
270+
public Varargs invoke(Varargs args) {
271+
int fixIndex = VenvyLVLibBinder.fixIndex(args);
272+
if (args.narg() > fixIndex) {
273+
final LuaTable luaTable = LuaUtil.getTable(args, fixIndex + 2);
274+
HashMap<String, String> map = LuaUtil.toMap(luaTable);
275+
if (map != null && map.size() > 0) {
276+
String appletId = map.get("appletId");
277+
String screenType = map.get("screenType");
278+
String appType = map.get("appType");
279+
String data = map.get("data");
280+
String level = map.get("level");
281+
// 发起一个视联网小程序
282+
Bundle bundle = new Bundle();
283+
bundle.putString(VenvyObservableTarget.KEY_APPLETS_ID, appletId);
284+
bundle.putString(VenvyObservableTarget.KEY_ORIENTATION_TYPE, screenType);
285+
bundle.putString(VenvyObservableTarget.Constant.CONSTANT_LEVEL, level);
286+
bundle.putString(VenvyObservableTarget.Constant.CONSTANT_APP_TYPE, appType);
287+
if (!TextUtils.isEmpty(data)) {
288+
bundle.putString(VenvyObservableTarget.Constant.CONSTANT_DATA, data);
289+
}
290+
ObservableManager.getDefaultObserable().sendToTarget(VenvyObservableTarget.TAG_LAUNCH_VISION_PROGRAM, bundle);
291+
292+
}
293+
294+
}
295+
296+
return LuaValue.NIL;
297+
}
298+
}
299+
264300
}

VideoOS/VenvyLibrary/src/main/assets/local_easy_shop.json

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,22 +3,28 @@
33
"data":{
44
"hotEditInfor":{
55
"isShowAds":true,
6-
"hotImage":"http://os-saas-share.videojj.com/dev/app_info/506/8824188c-54b9-4824-9e4d-74e35c996a01.jpeg",
7-
"hotTitle":"壹贰叁肆伍陸壹贰叁肆伍陸",
8-
"isShowClose":true
6+
"isShowClose":true,
7+
"hotImage":"https://os-saas-share.videojj.com/pro/os_operation/debug/img/04389837-9181-4eae-860b-38651baa2a52.jpg",
8+
"hotTitle":"热点标题0023456"
99
},
1010
"inforEdit":{
11-
"preferential":999999.9,
12-
"originalPrice":99999.9,
13-
"btnTxt":"快来加入购物车",
14-
"goodsTag":"限时秒杀",
15-
"goodsImage":"http://os-saas-share.videojj.com/dev/app_info/506/3d9d08e9-8dd5-481c-b2d6-3b0f32d9dae0.jpg",
16-
"goodsTitle":"ONLY2019秋季新款桔梗气质高腰珠饰A字雪纺连衣裙女连衣裙衣裙",
17-
"optionLinkUrl":"https://www.baidu.com"
11+
"btnTxt":"加入购物车",
12+
"goodsTitle":"003",
13+
"goodsImage":"https://os-saas-share.videojj.com/pro/os_operation/debug/img/65946b0b-5ce3-4425-a426-b0ae628e1e6a.jpg",
14+
"goodsTag":"004",
15+
"preferential":1,
16+
"originalPrice":10,
17+
"linkData":{
18+
"linkUrl":"https://www.baidu.com",
19+
"deepLink":"",
20+
"selfLink":""
21+
}
1822
},
19-
"creativeName":"easy go title",
20-
"miniAppId":"14062",
21-
"interactionTypeId":"2867"
23+
"creativeName":"超级轻松购02",
24+
"creativeIdList":[
25+
1735,
26+
1736
27+
]
2228
},
2329
"deviceType":3,
2430
"duration":10000,
@@ -36,6 +42,9 @@
3642
"exposureTrackLink":"http://v.admaster.com.cn/i/a122445,b3554599,c3925,i0,m202,8a2,8b3,h"
3743
}
3844
],
45+
"miniAppInfo":{
46+
"miniAppId":12304
47+
},
3948
"launchPlanId":"103",
4049
"sumHotspot":1,
4150
"template":"os_easy_shop_hotspot.lua",

VideoOS/VenvyLibrary/src/main/assets/lua/os_desktop_hotspot.lua

Lines changed: 60 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -796,6 +796,51 @@ local function createDesktopAdView(cell, section, row)
796796
cell.adContentLayout:addView(cell.adContentTitleBgView)
797797
end
798798

799+
local function listDataReplaceClickid(array, clickid)
800+
if(array == nil or clickid == nil) then
801+
return
802+
end
803+
for i, v in ipairs(array) do
804+
if (v ~= nil and string.find(v, "__CLICK_ID__") ~= nil) then
805+
array[i] = string.gsub(v, "__CLICK_ID__", clickid)
806+
end
807+
end
808+
end
809+
810+
local function getDownloadInfo(callback)
811+
local requestId = desktopWindow.request:get(desktopWindow.desktopAdInfo.linkData.linkUrl, nil, function(response, errorInfo)
812+
if (response == nil) then
813+
return
814+
end
815+
816+
local clickid = response.clickid
817+
local dstlink = response.dstlink
818+
819+
if(desktopWindow.desktopAdInfo.downloadTrackLink ~= nil) then
820+
listDataReplaceClickid(desktopWindow.desktopAdInfo.downloadTrackLink.isTrackLinks,clickid)
821+
end
822+
823+
if(desktopWindow.desktopAdInfo.downloadTrackLink.dsTrackLinks ~= nil) then
824+
listDataReplaceClickid(desktopWindow.desktopAdInfo.downloadTrackLink.dsTrackLinks,clickid)
825+
end
826+
827+
if(desktopWindow.desktopAdInfo.downloadTrackLink.dfTrackLinks ~= nil) then
828+
listDataReplaceClickid(desktopWindow.desktopAdInfo.downloadTrackLink.dfTrackLinks,clickid)
829+
end
830+
831+
if(desktopWindow.desktopAdInfo.downloadTrackLink.instTrackLinks ~= nil) then
832+
listDataReplaceClickid(desktopWindow.desktopAdInfo.downloadTrackLink.instTrackLinks,clickid)
833+
end
834+
835+
if(dstlink ~= nil) then
836+
desktopWindow.desktopAdInfo.downloadApkUrl = dstlink
837+
if(Applet.openAds) then
838+
Applet:openAds(desktopWindow.desktopAdInfo)
839+
end
840+
end
841+
end)
842+
end
843+
799844
local function setDesktopAdViewSize(cell, section, row)
800845

801846
local adContentLayoutX = desktopWindow.landscapeWidth * 0.0804
@@ -855,7 +900,13 @@ local function setDesktopAdViewSize(cell, section, row)
855900
end
856901
desktopWindow.desktopAdInfo.launchPlanId = desktopWindow.launchPlanId
857902

858-
Applet:openAds(desktopWindow.desktopAdInfo)
903+
if(System.android() and desktopWindow.desktopAdInfo.targetType == 3) then
904+
getDownloadInfo()
905+
else
906+
if(Applet.openAds) then
907+
Applet:openAds(desktopWindow.desktopAdInfo)
908+
end
909+
end
859910
end
860911
end)
861912
end
@@ -1047,20 +1098,14 @@ local function getRecentRecommendDesktopInfo(callback)
10471098
local paramDataString = Native:tableToJson(paramData)
10481099
local OS_HTTP_GET_COUPON_RED_PACKET = Native:videoOShost() .. "/vision/deskMiniApps/list"
10491100
local OS_HTTP_PUBLIC_KEY = Native:appSecret()
1050-
print("request params : ",paramDataString)
10511101
local requestId = desktopWindow.request:post(OS_HTTP_GET_COUPON_RED_PACKET, {
10521102
data = Native:aesEncrypt(paramDataString, OS_HTTP_PUBLIC_KEY, OS_HTTP_PUBLIC_KEY)
10531103
}, function(response, errorInfo)
10541104
if (response == nil) then
10551105
return
10561106
end
1057-
print("response encrypt before",response.encryptData)
1058-
1059-
print("error info ",errorInfo)
10601107
responseData = Native:aesDecrypt(response.encryptData, OS_HTTP_PUBLIC_KEY, OS_HTTP_PUBLIC_KEY)
1061-
print("LuaResponse:" .. type(responseData))
10621108
response = toTable(responseData)
1063-
print("responseresponse:" .. type(response))
10641109
if (response.resCode ~= "00") then
10651110
return
10661111
end
@@ -1096,7 +1141,6 @@ local function getAdDesktopInfo(callback)
10961141
return
10971142
end
10981143
responseData = Native:aesDecrypt(response.encryptData, OS_HTTP_PUBLIC_KEY, OS_HTTP_PUBLIC_KEY)
1099-
-- print("AdDesktopInfo LuaResponse:" .. responseData)
11001144
response = toTable(responseData)
11011145
if (response.resCode ~= "00") then
11021146
return
@@ -1141,10 +1185,12 @@ function show(args)
11411185
-- 获取最近使用
11421186
getRecentRecommendDesktopInfo(function()
11431187
onCreate()
1144-
getAdDesktopInfo(function()
1145-
if(desktopWindow.desktopScrollview ~= nil) then
1146-
desktopWindow.desktopScrollview:reload()
1147-
end
1148-
end)
1188+
if(Applet.openAds) then
1189+
getAdDesktopInfo(function()
1190+
if(desktopWindow.desktopScrollview ~= nil) then
1191+
desktopWindow.desktopScrollview:reload()
1192+
end
1193+
end)
1194+
end
11491195
end)
1150-
end
1196+
end

0 commit comments

Comments
 (0)