关于mui打开富文本链接效果

前端时间有用mui做个混编的app,在经历了各种摧残之后 只剩下软件内部打开富文本链接,在各种实验之后找到以下方法,模仿app内打开网页以及返回上级页面  直接上代码

var hrf=mui.openWindow({
    url:data.infoWebLink,
    id:data.infoWebLink,
     styles: {                             // 窗口参数 参考5+规范中的WebviewStyle,也就是说WebviewStyle下的参数都可以在此设置
          titleNView: {  // 窗口的标题栏控件
 titleText:data.title,                // 标题栏文字,当不设置此属性时,默认加载当前页面的标题,并自动更新页面的标题
  titleColor:"#000000",             // 字体颜色,颜色值格式为"#RRGGBB",默认值为"#000000"
  titleSize:"16px",                 // 字体大小,默认17px
 backgroundColor:"#F7F7F7",        // 控件背景颜色,颜色值格式为"#RRGGBB",默认值为"#F7F7F7"
 progress:{                        // 标题栏控件的进度条样式
   color:"#00FF00",                // 进度条颜色,默认值为"#00FF00"  
    height:"2px"                    // 进度条高度,默认值为"2px"         
  },
autoBackButton:true,
        splitLine:{                       // 标题栏控件的底部分割线,类似borderBottom
  color:"#CCCCCC",                // 分割线颜色,默认值为"#CCCCCC"  
  height:"1px"                    // 分割线高度,默认值为"2px"
  }
    }
  }
})

hrf.evalJS("plus.key.addEventListener('backbutton',function () { plus.webview.currentWebview().close(); })");

最后一句是将button赋值为返回上页的函数....

可以使用 MUI 的 CircularProgress 组件来实现 loading 效果。具体实现步骤如下: 1. 导入 CircularProgress 组件: ```javascript import CircularProgress from '@mui/material/CircularProgress'; ``` 2. 在需要展示 loading 的地方,使用 CircularProgress 组件,并设置相应的 props: ```javascript <Box sx={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}> <CircularProgress size={80} /> <Typography variant="h6" sx={{ mt: 2 }}> Loading... </Typography> </Box> ``` 其中,设置了 CircularProgress 的 size 属性为 80,表示 loading 动画的大小为 80px;Typography 组件用于展示 "Loading..." 的文本。 3. 如果需要在 loading 时隐藏其他内容,可以使用 MUI 的 Box 组件的 visibility 属性来实现: ```javascript <Box sx={{ visibility: isLoading ? 'hidden' : 'visible' }}> {/* 这里放需要展示的内容 */} </Box> ``` 其中,isLoading 表示 loading 的状态,如果为 true,则隐藏 Box 中的内容;如果为 false,则展示 Box 中的内容。 完整示例代码如下: ```javascript import CircularProgress from '@mui/material/CircularProgress'; import Box from '@mui/material/Box'; import Typography from '@mui/material/Typography'; function MyComponent() { const [isLoading, setLoading] = useState(false); // 模拟 loading 状态的变化 useEffect(() => { setLoading(true); setTimeout(() => { setLoading(false); }, 3000); }, []); return ( <Box sx={{ display: 'flex', flexDirection: 'column', alignItems: 'center' }}> {isLoading && ( <Box sx={{ position: 'absolute', top: 0, left: 0, width: '100%', height: '100%', backgroundColor: 'rgba(255, 255, 255, 0.5)', zIndex: 1 }}> <Box sx={{ display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', position: 'absolute', top: '50%', left: '50%', transform: 'translate(-50%, -50%)' }}> <CircularProgress size={80} /> <Typography variant="h6" sx={{ mt: 2 }}> Loading... </Typography> </Box> </Box> )} <Box sx={{ visibility: isLoading ? 'hidden' : 'visible' }}> {/* 这里放需要展示的内容 */} </Box> </Box> ); } ``` 上述代码中还包含了一个定位在最上层的半透明层,用于遮盖其他内容,以达到更好的 loading 效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值