Просмотр исходного кода

git ignore

tags/A.2.0.0.0_20230922_base
李俊才 2 лет назад
Родитель
Сommit
7d4114625c
9 измененных файлов: 361 добавлений и 354 удалений
  1. +6
    -1
      app/build.gradle
  2. Двоичные данные
      app/libs/rt.jar
  3. +15
    -1
      app/src/main/java/com/aispeech/nativedemo/utils/ScreenUtils.java
  4. +301
    -345
      app/src/main/java/com/aispeech/nativedemo/widget/CustomWebViewActivity.java
  5. +5
    -0
      app/src/main/java/com/aispeech/nativedemo/widget/IntentKey.java
  6. +4
    -0
      app/src/main/java/com/aispeech/nativedemo/widget/PageReadyParam.java
  7. +17
    -0
      app/src/main/java/com/aispeech/nativedemo/widget/StatusBarUtil.java
  8. +12
    -7
      app/src/main/res/layout/activity_custom_web.xml
  9. +1
    -0
      settings.gradle

+ 6
- 1
app/build.gradle Просмотреть файл

@@ -105,12 +105,16 @@ dependencies {

implementation group: 'org.java-websocket', name: 'Java-WebSocket', version: '1.5.1'
implementation("io.minio:minio:8.2.2")
implementation files ('C:/Users/唐明杰/.jdks/corretto-1.8.0_362/jre/lib/rt.jar')
//implementation files ('C:/Users/唐明杰/.jdks/corretto-1.8.0_362/jre/lib/rt.jar')

//Rxjava
implementation 'io.reactivex.rxjava2:rxjava:2.2.5'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
implementation 'com.facebook.fresco:fresco:1.5.0'
// H5原生通信
api 'com.github.wendux:DSBridge-Android:3.0.0'
//支持腾讯x5浏览器内核
api 'com.github.wendux:DSBridge-Android:x5-3.0-SNAPSHOT'
implementation project(path: ':test')

implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0'
@@ -125,5 +129,6 @@ dependencies {
implementation 'org.apache.xmlrpc:xmlrpc-client:3.1.3'

implementation files('libs/hdmiV1_0.jar')
implementation files('libs/rt.jar')
compileOnly files('libs/framework.jar')
}

Двоичные данные
app/libs/rt.jar Просмотреть файл


+ 15
- 1
app/src/main/java/com/aispeech/nativedemo/utils/ScreenUtils.java Просмотреть файл

@@ -14,5 +14,19 @@ public class ScreenUtils {
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
return wm.getDefaultDisplay().getHeight();
}
/**
* 根据手机的分辨率从 dp 的单位 转成为 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}

/**
* 根据手机的分辨率从 px(像素) 的单位 转成为 dp
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
}

+ 301
- 345
app/src/main/java/com/aispeech/nativedemo/widget/CustomWebViewActivity.java Просмотреть файл

@@ -28,9 +28,10 @@ import android.widget.FrameLayout;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;

import com.aispeech.nativedemo.DuiApplication;
import com.aispeech.nativedemo.databinding.ActivityCustomWebBinding;

//import wendu.dsbridge.CompletionHandler;
import wendu.dsbridge.CompletionHandler;

/**
* Webview 浏览器
@@ -74,15 +75,14 @@ public class CustomWebViewActivity extends Activity {
*/
private String mShareChannels;

// @Override
// protected void onCreate(@Nullable Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
//
// mBinding = ActivityCustomWebBinding.inflate(getLayoutInflater());
// setContentView(mBinding.getRoot());
// initStatusHeight();
// initShare();
// //网页后退
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

mBinding = ActivityCustomWebBinding.inflate(getLayoutInflater());
setContentView(mBinding.getRoot());
initStatusHeight();
//网页后退
// mBinding.ivBack.setOnClickListener(view -> {
// //网页后退
// if (mBinding.webView.canGoBack()){
@@ -96,111 +96,71 @@ public class CustomWebViewActivity extends Activity {
// mBinding.ivClose.setOnClickListener(view -> {
// finish();
// });
//
// mBinding.llRightContainer.setOnClickListener(view -> {
// toShare();
// });
//
// initWeb();
// //加载网页
// mUrl = getIntent().getStringExtra(IntentKey.WEB_URL);
// mBinding.webView.loadUrl(mUrl + "");
// if (mWebParams != null) {
// mBinding.webTaskAction.setVisibility(View.VISIBLE);
// if (!StringUtils.isEmpty(mWebParams.title)) {
// mBinding.tvFloat.setText(mWebParams.title);
// }
// mBinding.webTaskAction.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// //跳转其他路由页面
// if ("native".equals(mWebParams.redirect) &&
// !TextUtils.isEmpty(mWebParams.redirectUrl)) {
// if (AppPath.StoryHome.equals(mWebParams.redirectUrl)) {
// if (!SPUtils.getInstance().decodeBoolean(SpConstants.STORY_GUIDE)) {
// Router.startUri(getBaseActivity(), AppPath.StoryGuide);
// return;
// }
// }
// Router.startUri(getBaseActivity(), mWebParams.redirectUrl);
// return;
// }
// //去做任务
// if ("nativeparam".equals(mWebParams.redirect) &&
// !TextUtils.isEmpty(mWebParams.redirectUrl) && mActionData != null) {
// TaskJumpUtil.jump(getBaseActivity(), mActionData, null, StatisticsUtils.VAULT_TASK_SOURCE_BANNER);
// return;
//
// }
// //h5
// if ("url".equals(mWebParams.redirect) &&
// !TextUtils.isEmpty(mWebParams.redirectUrl)) {
// TaskJumpUtil.goWeb(getBaseActivity(), mWebParams.redirectUrl, true);
// return;
// }
// }
// });
// } else {
// mBinding.webTaskAction.setVisibility(View.GONE);
// }
// }
//
// /**
// * 设置自定义状态栏
// */
// private void initStatusHeight() {
// ViewGroup.LayoutParams layoutParams = mBinding.vStatusBar.getLayoutParams();
// layoutParams.height = StatusBarUtil.getStatusBarHeight();
// mBinding.vStatusBar.setLayoutParams(layoutParams);
// }
//
// /**
// * 初始化web
// */
// private void initWeb() {
// setCustomWebChromeClient();
//
// setCustomWebViewClient();
//
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
// WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
// //设置
// mBinding.webView.getSettings().setGeolocationEnabled(false);
// mBinding.webView.getSettings().setJavaScriptEnabled(true);
// mBinding.webView.getSettings().setDomStorageEnabled(true);
// mBinding.webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
//
// mBinding.webView.getSettings().setSupportMultipleWindows(true);
// mBinding.webView.getSettings().setLoadWithOverviewMode(true);
// mBinding.webView.getSettings().setUseWideViewPort(true);
// mBinding.webView.getSettings().setSupportZoom(true);
//
// mBinding.webView.getSettings().setAllowFileAccess(true);
// mBinding.webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
//
// mBinding.webView.getSettings().setUserAgentString(mBinding.webView.getSettings().getUserAgentString() + ":Android nwdn");
//
// mBinding.webView.addJavascriptObject(new JsApi(), null);
//
// if (Build.VERSION.SDK_INT >= 21) {
// mBinding.webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
// }
//
// //错误重试


initWeb();
//加载网页
mUrl = getIntent().getStringExtra(IntentKey.WEB_URL);
mBinding.webView.loadUrl(mUrl + "");

}

/**
* 设置自定义状态栏
*/
private void initStatusHeight() {
ViewGroup.LayoutParams layoutParams = mBinding.vStatusBar.getLayoutParams();
layoutParams.height = StatusBarUtil.getStatusBarHeight();
mBinding.vStatusBar.setLayoutParams(layoutParams);
}

/**
* 初始化web
*/
private void initWeb() {
setCustomWebChromeClient();

setCustomWebViewClient();

getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
//设置
mBinding.webView.getSettings().setGeolocationEnabled(false);
mBinding.webView.getSettings().setJavaScriptEnabled(true);
mBinding.webView.getSettings().setDomStorageEnabled(true);
mBinding.webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

mBinding.webView.getSettings().setSupportMultipleWindows(true);
mBinding.webView.getSettings().setLoadWithOverviewMode(true);
mBinding.webView.getSettings().setUseWideViewPort(true);
mBinding.webView.getSettings().setSupportZoom(true);

mBinding.webView.getSettings().setAllowFileAccess(true);
mBinding.webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);

mBinding.webView.getSettings().setUserAgentString(mBinding.webView.getSettings().getUserAgentString() + ":Android nwdn");

mBinding.webView.addJavascriptObject(new JsApi(), null);

if (Build.VERSION.SDK_INT >= 21) {
mBinding.webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}

//错误重试
// mBinding.webError.setOnReloadListener(new ErrorView.OnReloadListener() {
// @Override
// public void onReload() {
// mBinding.webView.reload();
// }
// });
// }
//
// private void setCustomWebViewClient() {
// //加载监听
// mBinding.webView.setWebViewClient(new WebViewClient(){
//
// @Override
// public boolean shouldOverrideUrlLoading(WebView view, String url) {
}

private void setCustomWebViewClient() {
//加载监听
mBinding.webView.setWebViewClient(new WebViewClient(){

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// if (url.startsWith("weixin://wap/pay?")) {
// if (!WechatSocial.isInstalledWx(CustomWebViewActivity.this)) {
// AppToast.showWarning(getString(R.string.wx_installed_tip));
@@ -212,21 +172,21 @@ public class CustomWebViewActivity extends Activity {
// startActivity(intent);
// return true;
// }
//
// return super.shouldOverrideUrlLoading(view, url);
// }
//
// @Override
// public void onPageFinished(WebView view, String url) {
// super.onPageFinished(view, url);
// //设置title
// String title = mBinding.webView.getTitle();
// if (StringUtils.notEmpty(title) && title.startsWith("http")) {
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
//设置title
String title = mBinding.webView.getTitle();
// if (!TextUtils.isEmpty(title) && title.startsWith("http")) {
// mBinding.tvTitle.setText("");
// } else {
// mBinding.tvTitle.setText(title);
// }
//
// if (mBinding.webView.canGoBack()) {
// mBinding.ivClose.setVisibility(View.VISIBLE);
// mBinding.ivBack.setBackgroundResource(R.drawable.icon_backh5_black_nav);
@@ -234,186 +194,182 @@ public class CustomWebViewActivity extends Activity {
// mBinding.ivClose.setVisibility(View.GONE);
// mBinding.ivBack.setBackgroundResource(R.drawable.icon_back_black_nav);
// }
// }
//
// @Override
// public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
// super.onReceivedSslError(view, handler, error);
// String errorStr = error.toString();
// }
//
// @RequiresApi(api = Build.VERSION_CODES.M)
// @Override
// public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
// super.onReceivedError(view, request, error);
// String errorStr = error.getDescription().toString();
// }
//
// @Override
// public void onPageStarted(WebView view, String url, Bitmap favicon) {
// super.onPageStarted(view, url, favicon);
// mBinding.webError.setVisibility(View.GONE);
// mBinding.webView.setVisibility(View.VISIBLE);
// }
// });
// }
//
// private void setCustomWebChromeClient() {
// //加载进度
// mBinding.webView.setWebChromeClient(new WebChromeClient(){
//
// /*** 视频播放相关的方法 **/
// @Override
// public void onShowCustomView(View view, CustomViewCallback callback) {
// super.onShowCustomView(view, callback);
// showCustomView(view, callback);
// }
//
// @Override
// public void onHideCustomView() {
// super.onHideCustomView();
// hideCustomView();
// }
//
// /**
// * API >= 21(Android 5.0.1)回调此方法
// */
// @Override
// public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
// // (1)该方法回调时说明版本API >= 21,此时将结果赋值给 mUploadCallbackAboveL,使之 != null
// mUploadCallbackAboveL = filePathCallback;
// takePhoto();
// return true;
// }
//
// });
// }
//
// /** 视频播放全屏 **/
// private void showCustomView(View view, WebChromeClient.CustomViewCallback callback) {
// if (mVideoView != null) {
// callback.onCustomViewHidden();
// return;
// }
//
// mBinding.flFullVideoContainer.setVisibility(View.VISIBLE);
// mBinding.webView.setVisibility(View.GONE);
// mBinding.flFullVideoContainer.addView(view);
//
// FrameLayout.LayoutParams flLayoutParams = (FrameLayout.LayoutParams)view.getLayoutParams();
// flLayoutParams.gravity = Gravity.CENTER;
// view.setLayoutParams(flLayoutParams);
//
// mVideoView = view;
// mVideoViewCallback = callback;
// setStatusBarVisibility(false);
// }
//
// /** 隐藏视频全屏 */
// private void hideCustomView() {
// if (mVideoView == null) {
// return;
// }
//
// setStatusBarVisibility(true);
// mBinding.flFullVideoContainer.removeView(mVideoView);
// mBinding.flFullVideoContainer.setVisibility(View.GONE);
// mVideoView = null;
// mVideoViewCallback.onCustomViewHidden();
// mBinding.webView.setVisibility(View.VISIBLE);
// }
//
// private void setStatusBarVisibility(boolean visible) {
// int flag = visible ? 0 : WindowManager.LayoutParams.FLAG_FULLSCREEN;
// getWindow().setFlags(flag, WindowManager.LayoutParams.FLAG_FULLSCREEN);
// }
//
// private ValueCallback<Uri[]> mUploadCallbackAboveL;
//
// private void takePhoto() {
// Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
// intent.addCategory(Intent.CATEGORY_OPENABLE);
// intent.setType("image/*");
// startActivityForResult(Intent.createChooser(intent, "Image Chooser"), REQUEST_CODE_SELECTED_PIC);
// }
//
// @Override
// protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// super.onActivityResult(requestCode, resultCode, data);
// if (requestCode == REQUEST_CODE_SELECTED_PIC) {
// //针对5.0以上, 以下区分处理方法
// if (mUploadCallbackAboveL != null) {
// chooseAbove(resultCode, data);
// }
// }
// //分享需要
// ShareDialog.shareOnActivityResult(this, requestCode, resultCode, data);
// }
//
// /**
// * Android API >= 21(Android 5.0) 版本的回调处理
// *
// * @param resultCode 选取文件或拍照的返回码
// * @param data 选取文件或拍照的返回结果
// */
// private void chooseAbove(int resultCode, Intent data) {
// if (RESULT_OK == resultCode) {
// if (data != null) {
// // 这里是针对从文件中选图片的处理, 区别是一个返回的URI, 一个是URI[]
// Uri[] results;
// Uri uriData = data.getData();
// if (uriData != null) {
// results = new Uri[]{uriData};
// mUploadCallbackAboveL.onReceiveValue(results);
// } else {
// mUploadCallbackAboveL.onReceiveValue(null);
// }
// }
// } else {
// mUploadCallbackAboveL.onReceiveValue(null);
// }
// mUploadCallbackAboveL = null;
// }
//
// @Override
// public boolean onKeyUp(int keyCode, KeyEvent event) {
//
// //网页后退
// if (keyCode == KeyEvent.KEYCODE_BACK) {
// /** 回退键 事件处理 优先级:视频播放全屏-网页回退-关闭页面 */
// if (mVideoView != null) {
// hideCustomView();
// } else if (mBinding.webView.canGoBack()) {
// mBinding.webView.goBack();
// } else {
// finish();
// }
//
// return true;
// }
//
// return super.onKeyUp(keyCode, event);
// }
//
// @Override
// protected void onDestroy() {
// super.onDestroy();
// if (mBinding != null && mBinding.webView != null) {
// mBinding.webView.destroy();
// mVideoView = null;
// mBinding = null;
// }
//
// ShareDialog.unRegisterShareListener(this, mShareResultReceiver);
// }
//
// public class JsApi {
//
// /**
// * 用于显示或者隐藏右上角分享按钮
// */
// @JavascriptInterface
// public void PageReady(Object paramJson, CompletionHandler handler) {
}

@Override
public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
super.onReceivedSslError(view, handler, error);
String errorStr = error.toString();
}

@RequiresApi(api = Build.VERSION_CODES.M)
@Override
public void onReceivedError(WebView view, WebResourceRequest request, WebResourceError error) {
super.onReceivedError(view, request, error);
String errorStr = error.getDescription().toString();
}

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
//mBinding.webError.setVisibility(View.GONE);
mBinding.webView.setVisibility(View.VISIBLE);
}
});
}

private void setCustomWebChromeClient() {
//加载进度
mBinding.webView.setWebChromeClient(new WebChromeClient(){

/*** 视频播放相关的方法 **/
@Override
public void onShowCustomView(View view, CustomViewCallback callback) {
super.onShowCustomView(view, callback);
showCustomView(view, callback);
}

@Override
public void onHideCustomView() {
super.onHideCustomView();
hideCustomView();
}

/**
* API >= 21(Android 5.0.1)回调此方法
*/
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
// (1)该方法回调时说明版本API >= 21,此时将结果赋值给 mUploadCallbackAboveL,使之 != null
mUploadCallbackAboveL = filePathCallback;
takePhoto();
return true;
}

});
}

/** 视频播放全屏 **/
private void showCustomView(View view, WebChromeClient.CustomViewCallback callback) {
if (mVideoView != null) {
callback.onCustomViewHidden();
return;
}

mBinding.flFullVideoContainer.setVisibility(View.VISIBLE);
mBinding.webView.setVisibility(View.GONE);
mBinding.flFullVideoContainer.addView(view);

FrameLayout.LayoutParams flLayoutParams = (FrameLayout.LayoutParams)view.getLayoutParams();
flLayoutParams.gravity = Gravity.CENTER;
view.setLayoutParams(flLayoutParams);

mVideoView = view;
mVideoViewCallback = callback;
setStatusBarVisibility(false);
}

/** 隐藏视频全屏 */
private void hideCustomView() {
if (mVideoView == null) {
return;
}

setStatusBarVisibility(true);
mBinding.flFullVideoContainer.removeView(mVideoView);
mBinding.flFullVideoContainer.setVisibility(View.GONE);
mVideoView = null;
mVideoViewCallback.onCustomViewHidden();
mBinding.webView.setVisibility(View.VISIBLE);
}

private void setStatusBarVisibility(boolean visible) {
int flag = visible ? 0 : WindowManager.LayoutParams.FLAG_FULLSCREEN;
getWindow().setFlags(flag, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}

private ValueCallback<Uri[]> mUploadCallbackAboveL;

private void takePhoto() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(Intent.createChooser(intent, "Image Chooser"), REQUEST_CODE_SELECTED_PIC);
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_SELECTED_PIC) {
//针对5.0以上, 以下区分处理方法
if (mUploadCallbackAboveL != null) {
chooseAbove(resultCode, data);
}
}
}

/**
* Android API >= 21(Android 5.0) 版本的回调处理
*
* @param resultCode 选取文件或拍照的返回码
* @param data 选取文件或拍照的返回结果
*/
private void chooseAbove(int resultCode, Intent data) {
if (RESULT_OK == resultCode) {
if (data != null) {
// 这里是针对从文件中选图片的处理, 区别是一个返回的URI, 一个是URI[]
Uri[] results;
Uri uriData = data.getData();
if (uriData != null) {
results = new Uri[]{uriData};
mUploadCallbackAboveL.onReceiveValue(results);
} else {
mUploadCallbackAboveL.onReceiveValue(null);
}
}
} else {
mUploadCallbackAboveL.onReceiveValue(null);
}
mUploadCallbackAboveL = null;
}

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {

//网页后退
if (keyCode == KeyEvent.KEYCODE_BACK) {
/** 回退键 事件处理 优先级:视频播放全屏-网页回退-关闭页面 */
if (mVideoView != null) {
hideCustomView();
} else if (mBinding.webView.canGoBack()) {
mBinding.webView.goBack();
} else {
finish();
}

return true;
}

return super.onKeyUp(keyCode, event);
}

@Override
protected void onDestroy() {
super.onDestroy();
if (mBinding != null && mBinding.webView != null) {
mBinding.webView.destroy();
mVideoView = null;
mBinding = null;
}
}

public class JsApi {

/**
* 用于显示或者隐藏右上角分享按钮
*/
@JavascriptInterface
public void PageReady(Object paramJson, CompletionHandler handler) {
// if (paramJson != null) {
// PageReadyParam pageReadyParam = GsonUtils.gsonResolve(paramJson.toString(), PageReadyParam.class);
// if (pageReadyParam != null && pageReadyParam.isShare == 1) {
@@ -421,7 +377,7 @@ public class CustomWebViewActivity extends Activity {
// mShareCover = pageReadyParam.shareCover;
// mShareTitle = pageReadyParam.shareTitle;
// mShareDesc = pageReadyParam.shareDesc;
// postInUIThread(() -> {
// DuiApplication.postInUIThread(() -> {
// if (mBinding != null) {
// mBinding.llRightContainer.setVisibility(View.VISIBLE);
// }
@@ -432,13 +388,13 @@ public class CustomWebViewActivity extends Activity {
// String userToken = AccountManager.getInstance().getToken();
// PageReadyReturn pageReadyReturn = new PageReadyReturn(BaseReturn.JS_SUCCESS, "", userToken);
// handler.complete(GsonUtils.toJson(pageReadyReturn));
// }
//
// /**
// * 用于 H5 点击分享按钮
// */
// @JavascriptInterface
// public void PageShare(Object paramJson, CompletionHandler handler) {
}
/**
* 用于 H5 点击分享按钮
*/
@JavascriptInterface
public void PageShare(Object paramJson, CompletionHandler handler) {
// if (paramJson != null) {
// PageShareParam pageShareParam = GsonUtils.gsonResolve(paramJson.toString(), PageShareParam.class);
// if (pageShareParam != null) {
@@ -463,13 +419,13 @@ public class CustomWebViewActivity extends Activity {
// }
// BaseReturn pageShareReturn = new BaseReturn(BaseReturn.JS_FAIL, "参数不能为空");
// handler.complete(GsonUtils.toJson(pageShareReturn));
// }
//
// /**
// * 用于 H5 页面跳转
// */
// @JavascriptInterface
// public void PageToPath(Object paramJson, CompletionHandler handler) {
}
/**
* 用于 H5 页面跳转
*/
@JavascriptInterface
public void PageToPath(Object paramJson, CompletionHandler handler) {
// BaseReturn pageShareReturn;
// if (paramJson != null) {
// PageToPathParam pageShareParam = GsonUtils.gsonResolve(paramJson.toString(), PageToPathParam.class);
@@ -484,13 +440,13 @@ public class CustomWebViewActivity extends Activity {
// }
// pageShareReturn = new BaseReturn(BaseReturn.JS_FAIL, "没有找到页面");
// handler.complete(GsonUtils.toJson(pageShareReturn));
// }
//
// /**
// * 用于 H5 页面跳转
// */
// @JavascriptInterface
// public void SaveImageToPhotosAlbum(Object paramJson, CompletionHandler handler) {
}
/**
* 用于 H5 页面跳转
*/
@JavascriptInterface
public void SaveImageToPhotosAlbum(Object paramJson, CompletionHandler handler) {
// BaseReturn baseReturn;
// if (paramJson != null) {
// SaveImageToPhotoAlbumParam saveImageParam = GsonUtils.gsonResolve(paramJson.toString(), SaveImageToPhotoAlbumParam.class);
@@ -507,13 +463,13 @@ public class CustomWebViewActivity extends Activity {
//
// baseReturn = new BaseReturn(BaseReturn.JS_FAIL, "请传有效URL");
// handler.complete(GsonUtils.toJson(baseReturn));
// }
//
// /**
// * 待确定,跳转到外部浏览器
// */
// @JavascriptInterface
// public void OpenBrowser(Object paramJson, CompletionHandler handler) {
}
/**
* 待确定,跳转到外部浏览器
*/
@JavascriptInterface
public void OpenBrowser(Object paramJson, CompletionHandler handler) {
// BaseReturn baseReturn;
// if (paramJson != null) {
// OpenBrowserParam openBrowserParam = GsonUtils.gsonResolve(paramJson.toString(), OpenBrowserParam.class);
@@ -525,13 +481,13 @@ public class CustomWebViewActivity extends Activity {
// handler.complete(GsonUtils.toJson(baseReturn));
// }
// }
// }
//
// /**
// * 待确定,跳转到外部浏览器
// */
// @JavascriptInterface
// public void CheckOpenApp(Object paramJson, CompletionHandler handler) {
}
/**
* 待确定,跳转到外部浏览器
*/
@JavascriptInterface
public void CheckOpenApp(Object paramJson, CompletionHandler handler) {
// final BaseReturn baseReturn;
// if (paramJson != null) {
// PackageParam packageParam = GsonUtils.gsonResolve(paramJson.toString(), PackageParam.class);
@@ -547,13 +503,13 @@ public class CustomWebViewActivity extends Activity {
// }
// }
// }
// }
//
// /**
// * 用于 H5 点击分享按钮
// */
// @JavascriptInterface
// public void OpenShare(Object paramJson, CompletionHandler handler) {
}
/**
* 用于 H5 点击分享按钮
*/
@JavascriptInterface
public void OpenShare(Object paramJson, CompletionHandler handler) {
// if (paramJson != null) {
// PageShareParam pageShareParam = GsonUtils.gsonResolve(paramJson.toString(), PageShareParam.class);
// if (pageShareParam != null) {
@@ -578,7 +534,7 @@ public class CustomWebViewActivity extends Activity {
// }
// BaseReturn pageShareReturn = new BaseReturn(BaseReturn.JS_FAIL, "参数不能为空");
// handler.complete(GsonUtils.toJson(pageShareReturn));
// }
// }
}
}

}

+ 5
- 0
app/src/main/java/com/aispeech/nativedemo/widget/IntentKey.java Просмотреть файл

@@ -0,0 +1,5 @@
package com.aispeech.nativedemo.widget;

public class IntentKey {
public static final String WEB_URL = "web_url";
}

+ 4
- 0
app/src/main/java/com/aispeech/nativedemo/widget/PageReadyParam.java Просмотреть файл

@@ -0,0 +1,4 @@
package com.aispeech.nativedemo.widget;

public class PageReadyParam {
}

+ 17
- 0
app/src/main/java/com/aispeech/nativedemo/widget/StatusBarUtil.java Просмотреть файл

@@ -0,0 +1,17 @@
package com.aispeech.nativedemo.widget;

import android.app.Application;

import com.aispeech.nativedemo.DuiApplication;
import com.aispeech.nativedemo.utils.ScreenUtils;

public class StatusBarUtil {
private static int mHeight;

public static int getStatusBarHeight() {
if (mHeight == 0) {
mHeight = ScreenUtils.dip2px(DuiApplication.getContext(), 44);
}
return mHeight;
}
}

+ 12
- 7
app/src/main/res/layout/activity_custom_web.xml Просмотреть файл

@@ -16,16 +16,21 @@
android:layout_height="0dp"
app:layout_constraintTop_toTopOf="parent"/>

<!-- <wendu.dsbridge.DWebView-->
<!-- android:id="@+id/web_view"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:paddingLeft="5dp"-->
<!-- android:paddingRight="5dp" />-->
<wendu.dsbridge.DWebView
android:id="@+id/web_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp" />



</LinearLayout>


<FrameLayout
android:id="@+id/flFullVideoContainer"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
</FrameLayout>
</RelativeLayout>

+ 1
- 0
settings.gradle Просмотреть файл

@@ -10,6 +10,7 @@ dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io"}
}
}



Загрузка…
Отмена
Сохранить