点击时刷新webview里的数据

封装高性能Android WebView组件 WebView是 Android 平台提供的一款强大的视图组件,用于在应用程序内嵌入一个网页浏览器。它允许开发者直接将网页内容展示给用户,而无需打开外部浏览器,从而提供了更流畅的用户体验和更好的应用集成度。为了与微信风格统一,我们可以使用Android的绘图API来自定义进度条的样式和动画效果。这里可以使用类,然后通过方法设置一个自定义的Drawable对象:-- 自定义进度条背景 --></shape></item>-- 进度条 --></item>在上面的代码中, 阅读详情
点击时刷新数据

用处:在项目中,在错题集Fragment收藏了错题后,点到收藏Fragment以后,收藏Fragment刷新收藏题数据;

NetDataLayer 中的方法:
// 获取收藏题的数量接口
// http://10.0.0.194:96/api.php?action=getcount
// uid 用户ID
// scode 登录校验码
// clienttype 1:android手机客户端 3:IOS手机客户端
// 返回
// favor_count 收藏题的数量
public static String http_getcount() {
    String write_data = "uid=" + UserHelper.userId
            +"&scode=" +UserHelper.token
            +"&clienttype=1";
    return get_Http_Post("http://"+ApplicationApp.ipAdd + "/api.php?action=getcount", write_data);
}
然后在Activity_Main中写一个线程,当点击了收藏Fragment后,调用这个线程:
// 获取收藏题数量子线程
// 如果第一次count为空,将数据存入,每次进入时进行判断count和favor_count,如果相等不刷新,不相等刷新    
private GetCount getcount=null;
class GetCount extends Thread{
    @Override
    public void run() {
        try {
            String result = NetDataLayer.http_getcount();
            JSONObject resultJO = new JSONObject(result);
            if (CheckData.checkData(context, resultJO) == 0) {
                JSONObject resultResultJO = new JSONObject(CheckData.parseData(resultJO));
                if (count != null) {
                    // 取数据
                    SharedPreferences sp = getSharedPreferences("counts", Context.MODE_PRIVATE);
                    String count = sp.getString("favorCount", null);
                    if (!resultResultJO.optString("favor_count").equals(count)) {
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                fragment_web_collect.reLoad();
                            }
                        });
                    }
                }
                // 存数据
                SharedPreferences sp = getSharedPreferences("counts", Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = sp.edit();
                editor.putString("favorCount", resultResultJO.optString("favor_count"));
                editor.commit();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
点击事件:
@Override
public void onClick(View v) {
    switch (v.getId()) {
        ...
        // 点击收藏
        case R.id.radio_button2:
            if (!UserHelper.userId.isEmpty() ) {
                changeIconAndTextColor(2);
                // 启动获取收藏题数量的线程
                getcount = new GetCount();
                getcount.start();
                main_viewpager.setCurrentItem(2);
            } else {
                Intent intent1 = new Intent(this, Activity_Login.class);
                startActivity(intent1);
            }
            break;
       ...
    }
}
Android下拉刷新功能集成与演示 本文还有配套的精品资源,点击获取 简介:下拉刷新是移动应用中常见的用户交互方式,尤其是在Android平台上,通过SwipeRefreshLayout组件实现。本示例项目“下拉刷新demo”展示了如何将下拉刷新功能集成到WebView和ListView等控件中。SwipeRefreshLayout作为布局容器,包含一个子视图,并在下拉动作完成后触发onRefresh()回调... 阅读详情

相关推荐

webview刷新2

提取的PullToRefreshWebView,适合工作中拿来就用

WebView监听网页内部返回键 实现前进、后退、与刷新功能

WebView监听网页内部返回键 实现前进、后退、与刷新功能 webView.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if ...

shanshan_1117的博客 2万+

手把手复现论文:SVPWM过调制I区与II区算法仿真(附MATLAB源码)

本文详细介绍了SVPWM过调制I区与II区算法的MATLAB仿真实现,从理论推导到Simulink建模逐步解析。通过源码示例展示幅值补偿和六边形跟踪等关键技术,帮助电力电子研究者掌握过调制算法的核心实现方法,适用于电机控制、变频器等工业应用场景。

weixin_28739079的博客 530

微信小程序webview跳转到二级页面,返回前一页如何自动刷新?

直接上方法。 方法一: cart.wxml: <web-view src="{{url}}"></web-view> cart.js: var loadCount=0 Page({ data: { url:"" }, onLoad: function (options) { }, onReady: function () { }, onShow: function () { loadCount++ this.setData({ url: "https:

addooooba的博客 1815

刚入职,软件测试岗,有点迷茫不知道下一步怎么提升自己

软件测试前景和发展都是不错,已经入了软件测试这行业就坚挺下去

大白的博客 2219

433M遥控器无线解码1527协议

433M遥控器无线解码1527协议,定时器轮询法

weixin_58595117的博客 1万+

c#中使用webview2

1、Nuget下载 Microsoft.Web.WebView2 (运行电脑中必须安装edage浏览器)如果在wpf中使用本地html文件必须设置所要显示的所有资源为始终复制。包括调用的js和css文件。如果使用原生态的webbrowser 则需要添加如下到html中。2、在xaml中引用。

wanxiweilai的博客 3300

Win10系统VS2019+Cmake+qhull_8.0.0环境配置

1 qhull 1.1 简要介绍 qhull是一个强大的计算几何库,可以用于计算高维的convex hull, Delaunay triangulation, Voronoi diagram等。 1.2 依赖库 qhull不依赖其他库。 1.3 源码包下载 qhull源码地址:github:https://github.com/qhull/qhull.git 2 Cmake构建项目 2.1 路径 源代码路径:D:/ThirdParty/qhull/qhull_8.0.0构建项目路径:D:/Thi.

wangchenxue的博客 2492

webview第二次加载带#的url 调用loadUrl()不会刷新的坑

最近在做项目的时候发现Android和IOS的webview重新加载都会存在这种情况。看log是已经跳转到相应url并且也加到堆栈中,但就是没有刷新 为了让它正常刷新我做了以下尝试

_陈泡泡的博客 6989

Visual Studio 2022+Qt6.5.3安装教程+环境配置+创建Qt项目+乱码插件+运行很完美(16岁孩子也能看懂)

Visual Studio 2022+Qt6.5.3安装教程+环境配置+创建Qt项目+乱码插件+运行很完美(16岁孩子也能看懂)

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 1190

12.工具高级参数CogCalibNPointToNPointTool

CogCalibNPointToNPointTool是一种多点2D坐标校正工具,用于将图像像素坐标转换为物理世界坐标。该工具通过两组点(图像坐标点和物理坐标点)计算最佳转换关系,并将结果保存供后续使用。操作步骤包括获取图像、添加坐标点对、计算转换参数。校正结果会显示平移、缩放、旋转等参数及RMS误差值,较大的误差可能表明点位置不准确或自由度不足。该工具广泛应用于机器视觉领域,通过9点标定等案例可验证坐标转换的准确性并优化参数设置。

204

android禁止刷新,Android禁止WebView返回时刷新

最近做一个Android项目所有页面全部是h5,返回时不希望刷新页面,首页,团队,收益,我的 ,是在一个html里面 在浏览器中打开如下图所示: 期望是:点“我的”再点“设置”,进入设置页面,然后点返回,应该停留在“我的”我通过webview.goback()方法进行返回实际结果是:却停留在“首页”位置:(1)点“我的”: (2)点“设置”: (3)点“返回”: 通过在网上一番查找,原来webv...

weixin_32161697的博客 574

完整功能-《网络安全创新实践》:设计并实现一种基于Npcap的网络嗅探器(直接能运行cpp的MFC代码+实验报告)

《网络安全创新实践》:设计并实现一种基于Npcap的网络嗅探器。(直接能跑的MFC)监听所有数据包,以及监听指定IP地址的数据包;(2)能够显示完整的IP数据包首部信息,例如:版本、首部长度、数据包长度、数据包类型(协议字段)、TTL、源IP地址、目的IP地址等;(3)能够显示完整的TCP报文段信息,例如:源端口、目的端口、序号、确认号、数据部分等;(4)能够自动检测SQL注入攻击等Web攻击行为;(5)能够将监听到的数据包信息保存到文件中,以及从文件中读取并显示数据包信息;(6)具有图形化操作界面。

weixin_46531010的博客 661

禁止WebView返回时刷新

禁止WebView返回时刷新webview在内部跳转的新的链接的时候,发现总会在返回的时候reload()一遍,但有时候我们希望保持上个状态。 [TOC]1、两种解决办法,第一种方法如果仅仅是简单的不更新数据,可以设置: mWeb.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ONLY);2、第二种情况是从新new一个WebView开发的

城主的专栏 7782

立项书8分钟定生死?手把手教你用ChatGPT辅助打造高水平申报书,让评审专家一看就想打高分!

宏大叙事、空话堆砌只会让评审绕晕,不如聚焦一个具体问题,拿出清晰的研究路径、扎实的设计方案,把“我想做什么、为什么做、打算怎么做”讲明白。对评审来说,关键不在你读了多少,而在你能否看清领域的共识、争议和空白,GPT的作用就在于帮你理清研究脉络,发现问题结构,聚焦那些还没被充分讨论的变量或方法,去提升综述的深度。之前要用到ProcessOn、Draw.io等工具画流程图,现在有了ai虽然方便了,但也需要多次调教,如果嫌麻烦,七哥给大家准备了课题申报常用的流程图,技术路线图,方便大家直接拿来编辑填空使用。

智能AI让学术科研更容易 291

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Android的webview返回不刷新页面

1212

u012963469的博客 3506

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android webview监听网页对话框点击事件

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an appli 现在项目遇到这样一个问题,HTML5网页弹出一个Alert对话框,该文章已经被删除,Android这边需要监听用户点击确定按钮,然后返回前一个列表页面进行页面刷新删除被后台删除的的数据,具体做

GEM_yaorao的博客 7826

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

调用js代码获取webView页面中的所有图片及点击事件

调用js代码获取webView页面中的所有图片及点击事件

u014620028的专栏 2973

flutter 项目实战五 item 点击跳转,webview加载

本项目借用 逛丢 网站的部分数据,仅作为 flutter 开发学习之用。 逛丢官方网址:https://guangdiu.com/ flutter windows开发环境设置 flutter 项目实战一 新建 flutter 项目 flutter 项目实战二 网络请求 flutter 项目实战三 json数据解析以及Gson格式化flutter 项目实战二 网络请求 flutter 项...

weixin_41191134的博客 3586

小程序中监听webview页面点击返回按钮

最新更新时间:2020年04月14日15:04:24 《猛戳-查看我的博客地图-总有你意想不到的惊喜》 本文内容:小程序退出webview组件之前,在H5页面中进行部分业务逻辑开发 概述 问题描述 小程序中使用webview组件,加载了一个H5的URL链接,web项目采用react架构,用户在页面进行了相关的操作,当用户点击左上角原生返回按钮的时候,在react组件中的component...

万少博-FE 7804

electron 中 webview的使用

我们在开发的过程中难免会遇到需要创建一个子窗口(子进程),但是在这个子进程中所有值都是初始化的,而我们肯定是需要一些值才能进行下一步操作,比如:token;那么我们怎么去传递值呢?我先给伙伴们说一些,基本原理(下面很多东西会建立在vue的基础上,如果是其他框架就自行修改就行),然后再给大家根据代码一步一步操作。大家看到这儿可能觉得很麻烦,但是如果我们在创建新窗口的时候就传递值的话,可能子进程的渲染进程拿不到值;所以我们当时搞了这种方法,目前运行半年以上基本上都没得问题;

weixin_50307964的博客 3072

mui刷新当前页面和返回当前页面刷新处理

1:使用mui开发的时候出现一个需求是刷新当前页面,有一个列表数据展示项,当点击删除其中一项让页面做一个刷新: 只需要在删除逻辑后添加一句:location.reload();就可以了。 2:当A页面进入B页面后在B页面做了操作,当在B页面完成操作后返回A页面后要在A界面做刷新处理: 在B界面添加如下: mui.init({ beforeback: function() {...

AndyYuan317的博客 9729

【Android】Webview 如何使用SwipeRefreshLayout下拉刷新

前言: 在android开发中,使用最多的数据刷新方式就是下拉刷新了,而完成此功能我们使用最多的就是第三方的开源库PullToRefresh。现如今,google也忍不住推出了自己的下拉组件SwipeRefreshLayout,下面我们通过api文档和源码来分析学习如何使用SwipeRefreshLayout。一, SwipeRefreshLayout的具体用法 1、setOnRefreshLi

七号座先生的博客 3675

Android——webview解决goback()后,界面会刷新的问题

在网上找了很多答案,都是说设置缓存模式即可 //设置 缓存模式webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT); // 开启 DOM storage API 功能 webView.getSettings().setDomStorageEnabled(true); 当然这种方法确实是有效,但是你必须在goback后取得缓存数据,网上的答案都没有明说,所以说都是坑。 view.goBack(); webView.getSetti

iamnm的博客 4545

安卓app单webview改为多webview加载网页

这几天用csdn的手机版,觉得用户体验不错,和我们的产品类似,也是采用webview来加载的页面,区别是它他每加载一个页面,都会启用一个新的webview来加载。         我们安卓平台只有一个webview,进入链接后返回,原来的页面还需要重新加载,因此不能回到原来进入新闻的地方。ios没有这个问题,因为ios的wkwebview自带页面缓存功能,返回刚才访问的页面,不需要重新加载。这个

qq_32532853的博客 7958

微信h5页面返回时ios不刷新页面解决方案

在做微信h5页面的时候,我们需要返回时刷新前一个页面的数据,比如在页面A点击支付按钮跳转到页面B,从页面B返回时要获取当前订单的支付状态防止重复支付。 在安卓手机上不会有困扰,因为安卓手机在微信h5中返回都会刷新页面,而由于ios手机上的微信webView版本的问题,返回时会直接从缓存中拿而不会刷新页面。 解决这一问题想到了vue-router,vue-router不就是有路由钩子吗?它主要用的h...

沉迷学习 日渐消瘦 4098
上一篇: webview常见问题
下一篇: 启动加载时跳过欢迎界面
马克斯丶
博客等级 码龄9年 4粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值