index.uts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { CanWebViewGoBack, CanWebViewGoForward, HasNativeView, CheckWebViewNativeView, CheckInputNativeView, CheckTextareaNativeView, CheckViewNativeView} from "../interface";
  2. import WebView from 'android.webkit.WebView';
  3. import AppCompatEditText from "androidx.appcompat.widget.AppCompatEditText"
  4. import ViewGroup from "android.view.ViewGroup"
  5. export const canWebViewGoBack : CanWebViewGoBack = function (elementId : string) : boolean {
  6. const view = uni.getElementById(elementId)?.getAndroidView<WebView>();
  7. return view == null ? false : view.canGoBack();
  8. }
  9. export const canWebViewGoForward : CanWebViewGoForward = function (elementId : string) : boolean {
  10. const view = uni.getElementById(elementId)?.getAndroidView<WebView>();
  11. return view == null ? false : view.canGoForward();
  12. }
  13. export const hasNativeView : HasNativeView = function (elementId : string) : boolean {
  14. const view = uni.getElementById(elementId)?.getAndroidView();
  15. return view != null;
  16. }
  17. export const checkWebViewNativeView: CheckWebViewNativeView = function (elementId : string) : boolean {
  18. //通过getElementById不设置泛型,取值view类型 再通过instanceof校验WebView
  19. const element = uni.getElementById(elementId)
  20. const view = element?.getAndroidView()
  21. if(view != null && view instanceof WebView) {
  22. return true
  23. }
  24. return false;
  25. }
  26. export const checkInputNativeView: CheckInputNativeView = function (elementId : string) : boolean {
  27. //通过getAndroidView设置泛型直接获取AppCompatEditText 如果获取失败则返回null
  28. const view = uni.getElementById(elementId)?.getAndroidView<AppCompatEditText>();
  29. return view != null;
  30. }
  31. export const checkTextareaNativeView: CheckViewNativeView = function (elementId : string) : boolean {
  32. //通过getAndroidView设置泛型直接获取AppCompatEditText 如果获取失败则返回null
  33. const view = uni.getElementById(elementId)?.getAndroidView<AppCompatEditText>();
  34. return view != null;
  35. }
  36. export const checkViewNativeView: CheckViewNativeView = function (elementId : string) : boolean {
  37. //通过getAndroidView设置泛型直接获取ViewGroup 如果获取失败则返回null
  38. const view = uni.getElementById(elementId)?.getAndroidView<ViewGroup>();
  39. return view != null;
  40. }