Skip to content

Commit 911fa09

Browse files
committed
Merge branch 'dev_2.7.0' into merge
# Conflicts: # VideoOS/LuaViewSDK/src/cn/com/venvy/lua/plugin/LVCommonParamPlugin.java # VideoOS/VenvyLibrary/src/main/java/cn/com/venvy/CommonParam.java
2 parents 4561f3a + 3399b65 commit 911fa09

File tree

58 files changed

+1822
-473
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+1822
-473
lines changed

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/LuaHelper.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import cn.com.venvy.Platform;
1212
import cn.com.venvy.lua.binder.UIGradientViewBinder;
1313
import cn.com.venvy.lua.binder.VenvyActivityLifeCycleBinder;
14+
import cn.com.venvy.lua.binder.VenvyAppletBinder;
1415
import cn.com.venvy.lua.binder.VenvyHttpRequestBinder;
1516
import cn.com.venvy.lua.binder.VenvyKeyboardBinder;
1617
import cn.com.venvy.lua.binder.VenvyMediaLifeCycleBinder;
@@ -37,6 +38,7 @@ public class LuaHelper {
3738
private static VenvyActivityLifeCycleBinder venvyActivityLifeCycleBinder;
3839
private static VenvyKeyboardBinder venvyKeyboardBinder;
3940
private static VenvyNativeBinder venvyNativeBinder;
41+
private static VenvyAppletBinder venvyAppletBinder;
4042
private static VenvySvgaBinder venvySvgaBinder;
4143
private static LVHttpBridge lvHttpBridge;
4244
private static VenvyMediaViewBinder mediaViewBinder;
@@ -74,6 +76,7 @@ private static void registerNativeLibs(@NonNull LuaView luaView, Platform platfo
7476
luaView.registerLibs(getUiGradientViewBinder(),
7577
getMediaLifeCycleBinder(platform),
7678
getMqttBinder(),
79+
getAppletBinder(platform),
7780
getSvgaBinder(),
7881
getWebViewBinder(platform),
7982
getActivityLifeCycleBinder(),
@@ -120,6 +123,12 @@ private static VenvyMqttBinder getMqttBinder() {
120123
return venvyMqttBinder == null ? venvyMqttBinder = new VenvyMqttBinder() : venvyMqttBinder;
121124
}
122125

126+
private static VenvyAppletBinder getAppletBinder(Platform platform) {
127+
VenvyAppletBinder appletBinder = venvyAppletBinder == null ? venvyAppletBinder = new VenvyAppletBinder() : venvyAppletBinder;
128+
appletBinder.setPlatform(platform);
129+
return appletBinder;
130+
}
131+
123132
private static VenvyNativeBinder getNativeBinder(Platform platform, ViewGroup viewGroup) {
124133
VenvyNativeBinder target = venvyNativeBinder == null ? venvyNativeBinder = new VenvyNativeBinder() : venvyNativeBinder;
125134
target.setPlatform(platform);
@@ -147,6 +156,7 @@ public static void destroy() {
147156
venvyWebViewBinder = null;
148157
venvyMediaLifeCycleBinder = null;
149158
venvyMqttBinder = null;
159+
venvyAppletBinder = null;
150160
venvyActivityLifeCycleBinder = null;
151161
venvyKeyboardBinder = null;
152162
venvyNativeBinder = null;

VideoOS/LuaViewSDK/src/com/taobao/luaview/fun/binder/kit/AppletBinder.java renamed to VideoOS/LuaViewSDK/src/cn/com/venvy/lua/binder/VenvyAppletBinder.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,34 @@
1-
package com.taobao.luaview.fun.binder.kit;
1+
package cn.com.venvy.lua.binder;
22

33
import com.taobao.luaview.fun.base.BaseFunctionBinder;
44
import com.taobao.luaview.userdata.kit.UDApplet;
55

66
import org.luaj.vm2.LuaValue;
77
import org.luaj.vm2.lib.LibFunction;
88

9+
import cn.com.venvy.Platform;
10+
911
/**
1012
* Created by Lucas on 2019/8/2.
1113
*/
12-
public class AppletBinder extends BaseFunctionBinder {
13-
public AppletBinder() {
14+
public class VenvyAppletBinder extends BaseFunctionBinder {
15+
private Platform mPlatform;
16+
17+
public VenvyAppletBinder() {
1418
super("Applet");
1519
}
1620

21+
public void setPlatform(Platform platform) {
22+
this.mPlatform = platform;
23+
}
24+
1725
@Override
1826
public Class<? extends LibFunction> getMapperClass() {
1927
return null;
2028
}
2129

2230
@Override
2331
public LuaValue createCreator(LuaValue env, LuaValue metaTable) {
24-
return new UDApplet(env.checkglobals(), metaTable);
32+
return new UDApplet(env.checkglobals(), metaTable, mPlatform);
2533
}
2634
}

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/maper/LVWebViewMethodMapper.java

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
import com.taobao.luaview.fun.mapper.LuaViewLib;
77
import com.taobao.luaview.fun.mapper.ui.UIViewMethodMapper;
88
import com.taobao.luaview.global.VmVersion;
9+
import com.taobao.luaview.util.JsonUtil;
910
import com.taobao.luaview.util.LuaUtil;
1011

1112
import org.luaj.vm2.LuaFunction;
13+
import org.luaj.vm2.LuaTable;
1214
import org.luaj.vm2.LuaValue;
1315
import org.luaj.vm2.Varargs;
1416

@@ -35,7 +37,9 @@ public class LVWebViewMethodMapper<U extends VenvyUDWebView> extends UIViewMetho
3537
"stopLoading",//8
3638
"url",//9
3739
"pullRefreshEnable",//10
38-
"callJS"//11
40+
"callJS",//11
41+
"webViewCallback", // 12
42+
"setInitData" // 13
3943
};
4044

4145
@Override
@@ -71,6 +75,10 @@ public Varargs invoke(int code, U target, Varargs varargs) {
7175
return pullRefreshEnable(target, varargs);
7276
case 11:
7377
return callJS(target, varargs);
78+
case 12:
79+
return webViewCallback(target, varargs);
80+
case 13:
81+
return setInitData(target, varargs);
7482
}
7583
return super.invoke(code, target, varargs);
7684
}
@@ -147,4 +155,23 @@ public LuaValue callJS(U view, Varargs varargs) {
147155
final LuaFunction callback = LuaUtil.getFunction(varargs, 3);
148156
return LuaValue.valueOf(view.callJS(jsMethod, callback));
149157
}
158+
159+
public LuaValue webViewCallback(U view, Varargs varargs) {
160+
final LuaTable callback = varargs.opttable(2, null);
161+
if (callback != null) {
162+
LuaValue onClose = LuaUtil.getFunction(callback, "onClose", "onClose");
163+
return view.webViewCallback(onClose);
164+
}
165+
166+
return LuaValue.valueOf("");
167+
}
168+
169+
public LuaValue setInitData(U view, Varargs varargs) {
170+
final LuaTable data = varargs.opttable(2, null);
171+
if (data != null) {
172+
String jsData = JsonUtil.toString(data);
173+
return view.setInitData(jsData);
174+
}
175+
return LuaValue.valueOf("");
176+
}
150177
}

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

Lines changed: 47 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import cn.com.venvy.Config;
1616
import cn.com.venvy.common.utils.VenvyAPKVersionCodeUtils;
1717
import cn.com.venvy.common.utils.VenvyDeviceUtil;
18+
import cn.com.venvy.common.utils.VenvyUIUtil;
1819
import cn.com.venvy.lua.binder.VenvyLVLibBinder;
1920

2021
/**
@@ -23,24 +24,29 @@
2324
*/
2425

2526
public class LVCommonParamPlugin {
26-
private static final String VERSION = "VERSION";//版本号
27+
private static final String LANGUAGE = "LANGUAGE";//语言
2728
private static final String SDK_VERSION = "SDK_VERSION";//sdk版本号
28-
private static final String USER_AGENT = "USER_AGENT";//代理
29-
private static final String OS_VERSION = "OS_VERSION";//系统版本号
3029
private static final String UD_ID = "UD_ID";//uuid
31-
// private static final String APP_KEY="";//app的key
32-
private static final String IP = "IP";//ip地址
33-
private static final String NETWORK = "NETWORK";//网络
34-
// private static final String PLATFORM_ID="";//平台id
35-
// private static final String CYTRON_VERSION="";//业务系统版本号
36-
private static final String LANGUAGE = "LANGUAGE";//语言
37-
// private static final String BU="OS";//业务id
38-
// private static final String ENCODING="";//编码
39-
// private static final String PLATFORM_TOKEN="";//平台token
4030
private static final String PHONE_MODEL = "PHONE_MODEL";//手机型号
31+
private static final String NETWORK = "NETWORK";//网络连接类型(0:未知,1:wifi,2:2G,3:3G,4:4G 5:5G)network
32+
private static final String VERSION = "VERSION";//APP版本(如:9.3.4)使用version
33+
private static final String OS_VERSION = "OS_VERSION";//系统版本号
4134
private static final String PHONE_PROVIDER = "PHONE_PROVIDER";//手机提供商
42-
private static final String ANDROID_ID = "ANDROID_ID";
35+
private static final String IP = "IP";//ip地址
36+
private static final String OS_TYPE = "OS_TYPE";//0:未知 1:Android 2:iOS 3:Windows Phone
37+
private static final String MAC = "MAC";
38+
private static final String ANDROID_ID = "ANDROID_ID";//android_id
4339
private static final String IMEI = "IMEI";
40+
private static final String APP_NAME = "APP_NAME";//APP名称(utf-8),需要UrlEncode
41+
private static final String PKG_NAME = "PKG_NAME";//APP包名(安卓是应用的PackageName,ios是Bundle ID)
42+
private static final String CARRIER = "CARRIER";//运营商信息 0:其他,1:移动,2:联通,3:电信
43+
private static final String PHONE_HEIGHT = "PHONE_HEIGHT";//设备屏幕宽度,物理像素
44+
private static final String PHONE_WIDTH = "PHONE_WIDTH";//设备屏幕高度,物理像素
45+
private static final String PPI = "PPI";//设备像素密度,物理像素
46+
private static final String IMSI = "IMSI";//国际移动客户识别码
47+
private static final String DEVICE_TYPE = "DEVICE_TYPE";//终端类型(1:移动端 2:PC 3:OTT)
48+
49+
4450
private static LVCommonParamPlugin.GetCommonParamData mCommonParamData;
4551

4652
public static void install(VenvyLVLibBinder venvyLVLibBinder) {
@@ -71,19 +77,40 @@ public Varargs invoke(Varargs args) {
7177
}
7278
table.set(LuaValue.valueOf(VERSION), LuaValue.valueOf(VenvyAPKVersionCodeUtils.getVersionName(App.getContext())));
7379
table.set(LuaValue.valueOf(SDK_VERSION), LuaValue.valueOf(Config.SDK_VERSION));
74-
table.set(LuaValue.valueOf(USER_AGENT), LuaValue.valueOf(VenvyDeviceUtil.getUserAgent(context)));
7580
table.set(LuaValue.valueOf(OS_VERSION), LuaValue.valueOf(VenvyDeviceUtil.getOsVersion()));
7681
table.set(LuaValue.valueOf(UD_ID), LuaValue.valueOf(VenvyDeviceUtil.getAndroidID(context)));
82+
table.set(LuaValue.valueOf(NETWORK), LuaValue.valueOf(VenvyDeviceUtil.getNetWorkType(context)));
83+
table.set(LuaValue.valueOf(LANGUAGE), LuaValue.valueOf(VenvyDeviceUtil.getLanguage(context)));
84+
table.set(LuaValue.valueOf(PHONE_MODEL), LuaValue.valueOf(android.os.Build.MODEL));
85+
table.set(LuaValue.valueOf(PHONE_PROVIDER), LuaValue.valueOf(android.os.Build.BRAND));
86+
table.set(LuaValue.valueOf(OS_TYPE), LuaValue.valueOf(1));
87+
table.set(LuaValue.valueOf(ANDROID_ID), LuaValue.valueOf(VenvyDeviceUtil.getAndroidID(context)));
88+
table.set(LuaValue.valueOf(IMEI), LuaValue.valueOf(VenvyDeviceUtil.getIMEI(context)));
89+
table.set(LuaValue.valueOf(DEVICE_TYPE), LuaValue.valueOf(1));
90+
table.set(LuaValue.valueOf(PHONE_WIDTH), LuaValue.valueOf(VenvyUIUtil.getScreenWidth(context)));
91+
table.set(LuaValue.valueOf(PHONE_HEIGHT), LuaValue.valueOf(VenvyUIUtil.getScreenHeight(context)));
92+
table.set(LuaValue.valueOf(PPI), LuaValue.valueOf(VenvyUIUtil.getScreenPPI(context)));
93+
table.set(LuaValue.valueOf(CARRIER), LuaValue.valueOf(VenvyDeviceUtil.getSubscriptionOperatorType(context)));
7794
String ip = VenvyDeviceUtil.getLocalIPAddress();
7895
if (!TextUtils.isEmpty(ip)) {
7996
table.set(LuaValue.valueOf(IP), LuaValue.valueOf(ip));
8097
}
81-
table.set(LuaValue.valueOf(NETWORK), LuaValue.valueOf(VenvyDeviceUtil.getNetWorkName(context)));
82-
table.set(LuaValue.valueOf(LANGUAGE), LuaValue.valueOf(VenvyDeviceUtil.getLanguage(context)));
83-
table.set(LuaValue.valueOf(PHONE_MODEL), LuaValue.valueOf(android.os.Build.MODEL));
84-
table.set(LuaValue.valueOf(PHONE_PROVIDER), LuaValue.valueOf(android.os.Build.BRAND));
85-
table.set(LuaValue.valueOf(ANDROID_ID), LuaValue.valueOf(VenvyDeviceUtil.getAndroidID(App.getContext())));
86-
table.set(LuaValue.valueOf(IMEI), LuaValue.valueOf(VenvyDeviceUtil.getIMEI(App.getContext())));
98+
String appName = VenvyAPKVersionCodeUtils.getAppName(context);
99+
if (!TextUtils.isEmpty(appName)) {
100+
table.set(LuaValue.valueOf(APP_NAME), LuaValue.valueOf(appName));
101+
}
102+
String packageName = VenvyAPKVersionCodeUtils.getPackageName(context);
103+
if (!TextUtils.isEmpty(packageName)) {
104+
table.set(LuaValue.valueOf(PKG_NAME), LuaValue.valueOf(packageName));
105+
}
106+
String macAddress = VenvyDeviceUtil.getMacAddress();
107+
if (!TextUtils.isEmpty(macAddress)) {
108+
table.set(LuaValue.valueOf(MAC), LuaValue.valueOf(macAddress));
109+
}
110+
String imsi = VenvyDeviceUtil.getIMSI(context);
111+
if (!TextUtils.isEmpty(imsi)) {
112+
table.set(LuaValue.valueOf(IMSI), LuaValue.valueOf(imsi));
113+
}
87114
return table;
88115
}
89116
}

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

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
* lua路由插件
2929
* Created by Arthur on 2017/8/21.
3030
* <p>
31+
* <p>
32+
* LuaView://topLuaView?template=xxx.lua&id=xxx&priority=xxx
33+
* <p>
3134
* * A类小程序 L uaView://defaultLuaView?template=xxx.lua&id=xxx
3235
* * 跳转B类小程序 LuaView://applets?appletId=xxxx&type=x&appType=x(type: 1横屏,2竖屏,appType: 1 lua,2 H5)
3336
* *
@@ -87,26 +90,29 @@ public Varargs invoke(Varargs args) {
8790
if (protocolHost.equalsIgnoreCase("defaultLuaView")) {
8891
// A类容器内部跳转
8992
info.withTargetViewParent(mPlatform.getContentViewGroup()).withTargetPlatform("platform", mPlatform).navigation();
93+
94+
} else if (protocolHost.equalsIgnoreCase("topLuaView")) {
95+
// 标签小程序 - [top level]
96+
// Bundle bundle = new Bundle();
97+
// bundle.putString(VenvyObservableTarget.Constant.CONSTANT_LUA_NAME, info.getBundle().getString("template"));
98+
// bundle.putString(VenvyObservableTarget.Constant.CONSTANT_ID, info.getBundle().getString("id"));
99+
ObservableManager.getDefaultObserable().sendToTarget(VenvyObservableTarget.TAG_ADD_LUA_SCRIPT_TO_TOP_LEVEL, info.getBundle());
100+
90101
} else if (protocolHost.equalsIgnoreCase("applets")) {
91102
String type = info.getBundle().getString("type");
92103
String appType = info.getBundle().getString("appType");
93-
if(TextUtils.isEmpty(appType)){
104+
if (TextUtils.isEmpty(appType)) {
94105
VenvyLog.d("appType is null");
95106
// appType为空默认指定为lua
96107
appType = String.valueOf(VenvyObservableTarget.Constant.CONSTANT_APP_TYPE_LUA);
97108
}
98-
VenvyLog.d("type is "+type+" , appType is "+appType);
99-
if(TextUtils.isEmpty(type)){
109+
VenvyLog.d("type is " + type + " , appType is " + appType);
110+
if (TextUtils.isEmpty(type)) {
100111
// B类小程序内部跳转
101112
info.withTargetViewParent(mPlatform.getContentViewGroup()).withTargetPlatform("platform", mPlatform).navigation();
102-
103-
// Bundle bundle = new Bundle();
104-
// bundle.putString(VenvyObservableTarget.KEY_APPLETS_ID, info.getBundle().getString("appletId"));
105-
// bundle.putString(VenvyObservableTarget.Constant.CONSTANT_TEMPLATE, info.getBundle().getString("template"));
106-
// bundle.putString(VenvyObservableTarget.Constant.CONSTANT_ID, info.getBundle().getString("id"));
107-
// bundle.putString(VenvyObservableTarget.Constant.CONSTANT_DATA, JsonUtil.toString(table));
108113
ObservableManager.getDefaultObserable().sendToTarget(VenvyObservableTarget.TAG_ADD_LUA_SCRIPT_TO_VISION_PROGRAM, null);
109-
}else{
114+
115+
} else {
110116
// 发起一个视联网小程序
111117
Bundle bundle = new Bundle();
112118
bundle.putString(VenvyObservableTarget.KEY_APPLETS_ID, info.getBundle().getString("appletId"));

0 commit comments

Comments
 (0)