index.uts 2.2 KB
Newer Older
shutao-dc's avatar
shutao-dc 已提交
1
import { CanWebViewGoBack, CanWebViewGoForward, HasNativeView, CheckWebViewNativeView, CheckInputNativeView, CheckTextareaNativeView, CheckViewNativeView} from "../interface";
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
2
import WebView from 'android.webkit.WebView';
3
import AppCompatEditText from "androidx.appcompat.widget.AppCompatEditText"
shutao-dc's avatar
shutao-dc 已提交
4
import ViewGroup from "android.view.ViewGroup"
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
5

DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
6 7
export const canWebViewGoBack : CanWebViewGoBack = function (elementId : string) : boolean {
  const view = uni.getElementById(elementId)?.getAndroidView<WebView>();
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
8 9 10
  return view == null ? false : view.canGoBack();
}

DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
11 12
export const canWebViewGoForward : CanWebViewGoForward = function (elementId : string) : boolean {
  const view = uni.getElementById(elementId)?.getAndroidView<WebView>();
DCloud-yinjiacheng's avatar
DCloud-yinjiacheng 已提交
13
  return view == null ? false : view.canGoForward();
14 15 16
}

export const hasNativeView : HasNativeView = function (elementId : string) : boolean {
17
  const view = uni.getElementById(elementId)?.getAndroidView();
18 19
  return view != null;
}
shutao-dc's avatar
shutao-dc 已提交
20 21

export const checkWebViewNativeView: CheckWebViewNativeView = function (elementId : string) : boolean {
22 23
  //通过getElementById不设置泛型,取值view类型 再通过instanceof校验WebView
  const element = uni.getElementById(elementId)
24 25
  const view = element?.getAndroidView()
  if(view != null && view instanceof WebView) {
26 27 28
    return true
  }
  return false;
shutao-dc's avatar
shutao-dc 已提交
29 30 31
}

export const checkInputNativeView: CheckInputNativeView = function (elementId : string) : boolean {
32 33
  //通过getAndroidView设置泛型直接获取AppCompatEditText 如果获取失败则返回null
  const view = uni.getElementById(elementId)?.getAndroidView<AppCompatEditText>();
shutao-dc's avatar
shutao-dc 已提交
34 35 36 37
  return view != null;
}

export const checkTextareaNativeView: CheckViewNativeView = function (elementId : string) : boolean {
38 39
  //通过getAndroidView设置泛型直接获取AppCompatEditText 如果获取失败则返回null
  const view = uni.getElementById(elementId)?.getAndroidView<AppCompatEditText>();
shutao-dc's avatar
shutao-dc 已提交
40 41 42 43
  return view != null;
}

export const checkViewNativeView: CheckViewNativeView = function (elementId : string) : boolean {
44
  //通过getAndroidView设置泛型直接获取ViewGroup 如果获取失败则返回null
shutao-dc's avatar
shutao-dc 已提交
45 46 47
  const view = uni.getElementById(elementId)?.getAndroidView<ViewGroup>();
  return view != null;
}