提交 6ac07c8a 编写于 作者: fxy060608's avatar fxy060608

feat(api): add setPageMeta

上级 4bb3034c
......@@ -15,6 +15,7 @@ export * from './service/ui/createAnimation'
export * from './service/ui/tabBar'
export * from './service/ui/window'
export * from './service/ui/locale'
export * from './service/ui/setPageMeta'
export * from './service/keyboard/getSelectedTextRange'
......
import { defineAsyncApi } from '../../helpers/api'
import { getCurrentPageVm } from '@dcloudio/uni-core'
import { setCurrentPageMeta } from '@dcloudio/uni-platform'
export interface SetPageMetaOptions {
pageStyle?: string
rootFontSize?: string
success?: (result: any) => void
fail?: (result: any) => void
complete?: (result: any) => void
}
type API_TYPE_SET_PAGE_META = (options: SetPageMetaOptions) => void
export const API_SET_PAGE_META = 'setPageMeta'
export const setPageMeta = defineAsyncApi<API_TYPE_SET_PAGE_META>(
API_SET_PAGE_META,
(options, { resolve }) => {
resolve(setCurrentPageMeta(getCurrentPageVm()!, options))
}
)
......@@ -1272,6 +1272,10 @@ var serviceContext = (function (vue) {
}, page.$page.id, callback);
}
function setCurrentPageMeta(page, options) {
UniServiceJSBridge.invokeViewMethod('setPageMeta', options, page.$page.id);
}
const isArray = Array.isArray;
const isObject = (val) => val !== null && typeof val === 'object';
const defaultDelimiters = ['{', '}'];
......@@ -4471,6 +4475,11 @@ var serviceContext = (function (vue) {
return false;
});
const API_SET_PAGE_META = 'setPageMeta';
const setPageMeta = defineAsyncApi(API_SET_PAGE_META, (options, { resolve }) => {
resolve(setCurrentPageMeta(getCurrentPageVm(), options));
});
const API_GET_SELECTED_TEXT_RANGE = 'getSelectedTextRange';
const getSelectedTextRange = defineAsyncApi(API_GET_SELECTED_TEXT_RANGE, (_, { resolve, reject }) => {
......@@ -9349,7 +9358,7 @@ var serviceContext = (function (vue) {
plus.nativeUI.closeWaiting();
resolve();
});
function setPageMeta(statusBarStyle) {
function setPageStatusBarStyle(statusBarStyle) {
const pages = getCurrentPages();
if (!pages.length) {
return;
......@@ -9370,7 +9379,7 @@ var serviceContext = (function (vue) {
const statusBarStyle = frontColor === '#000000' ? 'dark' : 'light';
plus.navigator.setStatusBarStyle(statusBarStyle);
// 用户调用api时同时改变当前页配置,这样在系统调用设置时,可以避免覆盖用户设置
setPageMeta(statusBarStyle);
setPageStatusBarStyle(statusBarStyle);
const style = webview.getStyle();
if (style && style.titleNView) {
if (style.titleNView.autoBackButton) {
......@@ -12752,6 +12761,7 @@ var serviceContext = (function (vue) {
$emit: $emit,
onAppLaunch: onAppLaunch,
onLocaleChange: onLocaleChange,
setPageMeta: setPageMeta,
setStorageSync: setStorageSync,
setStorage: setStorage,
getStorageSync: getStorageSync,
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
export { getBaseSystemInfo } from '../service/api/base/getBaseSystemInfo'
export { requestComponentInfo } from '../service/api/ui/requestComponentInfo'
export { setCurrentPageMeta } from '../service/api/ui/setPageMeta'
export { getRealPath } from './getRealPath'
export { operateVideoPlayer } from '../service/api/context/operateVideoPlayer'
export { operateMap } from '../service/api/context/operateMap'
......
......@@ -105,4 +105,5 @@ export {
$emit,
onAppLaunch,
onLocaleChange,
setPageMeta,
} from '@dcloudio/uni-api'
......@@ -66,7 +66,7 @@ export const hideNavigationBarLoading =
}
)
function setPageMeta(statusBarStyle: StatusBarStyle) {
function setPageStatusBarStyle(statusBarStyle: StatusBarStyle) {
const pages = getCurrentPages()
if (!pages.length) {
return
......@@ -100,7 +100,7 @@ export const setNavigationBarColor =
plus.navigator.setStatusBarStyle(statusBarStyle)
// 用户调用api时同时改变当前页配置,这样在系统调用设置时,可以避免覆盖用户设置
setPageMeta(statusBarStyle)
setPageStatusBarStyle(statusBarStyle)
const style = webview.getStyle()
if (style && style.titleNView) {
......
import { ComponentPublicInstance } from 'vue'
import { SetPageMetaOptions } from '@dcloudio/uni-api'
export function setCurrentPageMeta(
page: ComponentPublicInstance,
options: SetPageMetaOptions
) {
UniServiceJSBridge.invokeViewMethod('setPageMeta', options, page.$page.id)
}
import { ComponentPublicInstance } from 'vue'
import { extend } from '@vue/shared'
import {
API_LOAD_FONT_FACE,
API_PAGE_SCROLL_TO,
API_SET_PAGE_META,
SelectorQueryRequest,
} from '@dcloudio/uni-api'
import {
......@@ -9,9 +11,9 @@ import {
registerViewMethod,
getCurrentPageId,
} from '@dcloudio/uni-core'
import { ComponentPublicInstance } from 'vue'
import { requestComponentInfo } from '../../../../uni-h5/src/platform'
import {
requestComponentInfo,
setCurrentPageMeta,
addIntersectionObserver,
removeIntersectionObserver,
addMediaQueryObserver,
......@@ -65,4 +67,7 @@ export function initViewMethods() {
})
registerViewMethod(pageId, API_PAGE_SCROLL_TO, pageScrollTo)
registerViewMethod(pageId, API_LOAD_FONT_FACE, loadFontFace)
registerViewMethod(pageId, API_SET_PAGE_META, (args) => {
setCurrentPageMeta(null, args)
})
}
......@@ -110,6 +110,7 @@
"setLocale",
"setNavigationBarColor",
"setNavigationBarTitle",
"setPageMeta",
"setRightWindowStyle",
"setScreenBrightness",
"setStorage",
......
......@@ -2198,6 +2198,15 @@ function requestComponentInfo(page, reqs, callback) {
});
callback(result);
}
function setCurrentPageMeta(_page, { pageStyle, rootFontSize }) {
if (pageStyle) {
const pageElm = document.querySelector("uni-page-body") || document.body;
pageElm.setAttribute("style", pageStyle);
}
if (rootFontSize && document.documentElement.style.fontSize !== rootFontSize) {
document.documentElement.style.fontSize = rootFontSize;
}
}
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var lookup = /* @__PURE__ */ function() {
const lookup2 = new Uint8Array(256);
......@@ -4437,6 +4446,10 @@ const setLocale = /* @__PURE__ */ defineSyncApi(API_SET_LOCALE, (locale) => {
}
return false;
});
const API_SET_PAGE_META = "setPageMeta";
const setPageMeta = /* @__PURE__ */ defineAsyncApi(API_SET_PAGE_META, (options, { resolve }) => {
resolve(setCurrentPageMeta(getCurrentPageVm(), options));
});
const API_GET_SELECTED_TEXT_RANGE = "getSelectedTextRange";
const getSelectedTextRange$1 = /* @__PURE__ */ defineAsyncApi(API_GET_SELECTED_TEXT_RANGE, (_, { resolve, reject }) => {
UniServiceJSBridge.invokeViewMethod("getSelectedTextRange", {}, getCurrentPageId(), (res) => {
......@@ -18747,10 +18760,10 @@ const setNavigationBarColor = /* @__PURE__ */ defineAsyncApi(API_SET_NAVIGATION_
setNavigationBar(getCurrentPageMeta(), API_SET_NAVIGATION_BAR_COLOR, args, resolve, reject);
}, SetNavigationBarColorProtocol, SetNavigationBarColorOptions);
const showNavigationBarLoading = /* @__PURE__ */ defineAsyncApi(API_SHOW_NAVIGATION_BAR_LOADING, (args, { resolve, reject }) => {
setNavigationBar(getCurrentPageMeta(), API_SHOW_NAVIGATION_BAR_LOADING, args, resolve, reject);
setNavigationBar(getCurrentPageMeta(), API_SHOW_NAVIGATION_BAR_LOADING, args || {}, resolve, reject);
});
const hideNavigationBarLoading = /* @__PURE__ */ defineAsyncApi(API_HIDE_NAVIGATION_BAR_LOADING, (args, { resolve, reject }) => {
setNavigationBar(getCurrentPageMeta(), API_HIDE_NAVIGATION_BAR_LOADING, args, resolve, reject);
setNavigationBar(getCurrentPageMeta(), API_HIDE_NAVIGATION_BAR_LOADING, args || {}, resolve, reject);
});
const setNavigationBarTitle = /* @__PURE__ */ defineAsyncApi(API_SET_NAVIGATION_BAR_TITLE, (args, { resolve, reject }) => {
setNavigationBar(getCurrentPageMeta(), API_SET_NAVIGATION_BAR_TITLE, args, resolve, reject);
......@@ -19609,6 +19622,7 @@ var api = {
$emit,
onAppLaunch,
onLocaleChange,
setPageMeta,
cssVar,
cssEnv,
cssConstant,
......@@ -21768,4 +21782,4 @@ var index = /* @__PURE__ */ defineSystemComponent({
return openBlock(), createBlock("div", clazz, [loadingVNode]);
}
});
export { $emit, $off, $on, $once, index$8 as Ad, index$7 as AdContentPage, index$6 as AdDraw, index$1 as AsyncErrorComponent, index as AsyncLoadingComponent, index$y as Button, index$5 as Camera, index$w as Canvas, index$u as Checkbox, index$v as CheckboxGroup, index$a as CoverImage, index$b as CoverView, index$t as Editor, index$A as Form, index$s as Icon, index$r as Image, Input, index$z as Label, LayoutComponent, index$4 as LivePlayer, index$3 as LivePusher, Map$1 as Map, MovableArea, MovableView, index$q as Navigator, index$2 as PageComponent, index$9 as Picker, PickerView, PickerViewColumn, index$p as Progress, index$n as Radio, index$o as RadioGroup, ResizeSensor, index$m as RichText, ScrollView, index$l as Slider, Swiper, SwiperItem, index$k as Switch, index$j as Text, index$i as Textarea, UniServiceJSBridge$1 as UniServiceJSBridge, UniViewJSBridge$1 as UniViewJSBridge, index$e as Video, index$h as View, index$d as WebView, addInterceptor, addPhoneContact, arrayBufferToBase64, base64ToArrayBuffer, canIUse, canvasGetImageData, canvasPutImageData, canvasToTempFilePath, chooseFile, chooseImage, chooseLocation, chooseVideo, clearStorage, clearStorageSync, closeSocket, connectSocket, createAnimation$1 as createAnimation, createCameraContext, createCanvasContext, createInnerAudioContext, createIntersectionObserver, createLivePlayerContext, createMapContext, createMediaQueryObserver, createSelectorQuery, createVideoContext, cssBackdropFilter, cssConstant, cssEnv, cssVar, downloadFile, getApp$1 as getApp, getClipboardData, getCurrentPages$1 as getCurrentPages, getFileInfo, getImageInfo, getLeftWindowStyle, getLocale, getLocation, getNetworkType, getProvider, getRealPath, getRecorderManager, getRightWindowStyle, getSavedFileInfo, getSavedFileList, getScreenBrightness, getSelectedTextRange$1 as getSelectedTextRange, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getTopWindowStyle, getVideoInfo, hideKeyboard, hideLeftWindow, hideLoading, hideNavigationBarLoading, hideRightWindow, hideTabBar, hideTabBarRedDot, hideToast, hideTopWindow, interceptors, loadFontFace, login, makePhoneCall, navigateBack, navigateTo, offAccelerometerChange, offCompassChange, offNetworkStatusChange, offWindowResize, onAccelerometerChange, onAppLaunch, onCompassChange, onGyroscopeChange, onLocaleChange, onMemoryWarning, onNetworkStatusChange, onSocketClose, onSocketError, onSocketMessage, onSocketOpen, onTabBarMidButtonTap, onUserCaptureScreen, onWindowResize, openDocument, openLocation, pageScrollTo, index$f as plugin, preloadPage, previewImage, reLaunch, redirectTo, removeInterceptor, removeSavedFileInfo, removeStorage, removeStorageSync, removeTabBarBadge, request, saveFile, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, sendSocketMessage, setClipboardData, setKeepScreenOn, setLeftWindowStyle, setLocale, setNavigationBarColor, setNavigationBarTitle, setRightWindowStyle, setScreenBrightness, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setTopWindowStyle, setupApp, setupPage, setupWindow, showActionSheet, showLeftWindow, showLoading, showModal, showNavigationBarLoading, showRightWindow, showTabBar, showTabBarRedDot, showToast, showTopWindow, startAccelerometer, startCompass, startGyroscope, startPullDownRefresh, stopAccelerometer, stopCompass, stopGyroscope, stopPullDownRefresh, switchTab, uni$1 as uni, uploadFile, upx2px, useI18n, useTabBar, vibrateLong, vibrateShort };
export { $emit, $off, $on, $once, index$8 as Ad, index$7 as AdContentPage, index$6 as AdDraw, index$1 as AsyncErrorComponent, index as AsyncLoadingComponent, index$y as Button, index$5 as Camera, index$w as Canvas, index$u as Checkbox, index$v as CheckboxGroup, index$a as CoverImage, index$b as CoverView, index$t as Editor, index$A as Form, index$s as Icon, index$r as Image, Input, index$z as Label, LayoutComponent, index$4 as LivePlayer, index$3 as LivePusher, Map$1 as Map, MovableArea, MovableView, index$q as Navigator, index$2 as PageComponent, index$9 as Picker, PickerView, PickerViewColumn, index$p as Progress, index$n as Radio, index$o as RadioGroup, ResizeSensor, index$m as RichText, ScrollView, index$l as Slider, Swiper, SwiperItem, index$k as Switch, index$j as Text, index$i as Textarea, UniServiceJSBridge$1 as UniServiceJSBridge, UniViewJSBridge$1 as UniViewJSBridge, index$e as Video, index$h as View, index$d as WebView, addInterceptor, addPhoneContact, arrayBufferToBase64, base64ToArrayBuffer, canIUse, canvasGetImageData, canvasPutImageData, canvasToTempFilePath, chooseFile, chooseImage, chooseLocation, chooseVideo, clearStorage, clearStorageSync, closeSocket, connectSocket, createAnimation$1 as createAnimation, createCameraContext, createCanvasContext, createInnerAudioContext, createIntersectionObserver, createLivePlayerContext, createMapContext, createMediaQueryObserver, createSelectorQuery, createVideoContext, cssBackdropFilter, cssConstant, cssEnv, cssVar, downloadFile, getApp$1 as getApp, getClipboardData, getCurrentPages$1 as getCurrentPages, getFileInfo, getImageInfo, getLeftWindowStyle, getLocale, getLocation, getNetworkType, getProvider, getRealPath, getRecorderManager, getRightWindowStyle, getSavedFileInfo, getSavedFileList, getScreenBrightness, getSelectedTextRange$1 as getSelectedTextRange, getStorage, getStorageInfo, getStorageInfoSync, getStorageSync, getSystemInfo, getSystemInfoSync, getTopWindowStyle, getVideoInfo, hideKeyboard, hideLeftWindow, hideLoading, hideNavigationBarLoading, hideRightWindow, hideTabBar, hideTabBarRedDot, hideToast, hideTopWindow, interceptors, loadFontFace, login, makePhoneCall, navigateBack, navigateTo, offAccelerometerChange, offCompassChange, offNetworkStatusChange, offWindowResize, onAccelerometerChange, onAppLaunch, onCompassChange, onGyroscopeChange, onLocaleChange, onMemoryWarning, onNetworkStatusChange, onSocketClose, onSocketError, onSocketMessage, onSocketOpen, onTabBarMidButtonTap, onUserCaptureScreen, onWindowResize, openDocument, openLocation, pageScrollTo, index$f as plugin, preloadPage, previewImage, reLaunch, redirectTo, removeInterceptor, removeSavedFileInfo, removeStorage, removeStorageSync, removeTabBarBadge, request, saveFile, saveImageToPhotosAlbum, saveVideoToPhotosAlbum, scanCode, sendSocketMessage, setClipboardData, setKeepScreenOn, setLeftWindowStyle, setLocale, setNavigationBarColor, setNavigationBarTitle, setPageMeta, setRightWindowStyle, setScreenBrightness, setStorage, setStorageSync, setTabBarBadge, setTabBarItem, setTabBarStyle, setTopWindowStyle, setupApp, setupPage, setupWindow, showActionSheet, showLeftWindow, showLoading, showModal, showNavigationBarLoading, showRightWindow, showTabBar, showTabBarRedDot, showToast, showTopWindow, startAccelerometer, startCompass, startGyroscope, startPullDownRefresh, stopAccelerometer, stopCompass, stopGyroscope, stopPullDownRefresh, switchTab, uni$1 as uni, uploadFile, upx2px, useI18n, useTabBar, vibrateLong, vibrateShort };
......@@ -3,6 +3,7 @@ export { getBaseSystemInfo } from '../service/api/base/getBaseSystemInfo'
export { operateVideoPlayer } from '../service/api/context/operateVideoPlayer'
export { operateMap } from '../service/api/context/operateMap'
export { requestComponentInfo } from '../service/api/ui/requestComponentInfo'
export { setCurrentPageMeta } from '../service/api/ui/setPageMeta'
export {
addIntersectionObserver,
removeIntersectionObserver,
......
......@@ -94,5 +94,6 @@ export {
$emit,
onAppLaunch,
onLocaleChange,
setPageMeta,
} from '@dcloudio/uni-api'
//#endif
......@@ -97,7 +97,7 @@ export const showNavigationBarLoading =
setNavigationBar(
getCurrentPageMeta(),
API_SHOW_NAVIGATION_BAR_LOADING,
args,
args || {},
resolve,
reject
)
......@@ -111,7 +111,7 @@ export const hideNavigationBarLoading =
setNavigationBar(
getCurrentPageMeta(),
API_HIDE_NAVIGATION_BAR_LOADING,
args,
args || {},
resolve,
reject
)
......
import { ComponentPublicInstance } from 'vue'
import { SetPageMetaOptions } from '@dcloudio/uni-api'
export function setCurrentPageMeta(
_page: ComponentPublicInstance | null,
{ pageStyle, rootFontSize }: SetPageMetaOptions
) {
if (pageStyle) {
const pageElm = document.querySelector('uni-page-body') || document.body
pageElm.setAttribute('style', pageStyle)
}
if (
rootFontSize &&
document.documentElement.style.fontSize !== rootFontSize
) {
document.documentElement.style.fontSize = rootFontSize
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册