tanx移动怎么用新手引导中怎么添加应用

关于移动应用的新手引导设计
关于移动应用的新手引导设计
21:31:55 |
前面做过几篇价值观、一篇莫名其妙的洗衣机界面重设计…今次回到移动应用的dirty job当中,搞基层建设。来自Nielsen Norman老爷子Group的小文一篇。下面进入译文。
如今市面上的很多应用都会在初次加载时提供“教练画板”形式的新手引导或教程任务(画着各种使用说明的半透明浮层)。此类引导有时确实可以帮助用户以正确的方式使用产品 ...
前面做过几篇价值观、一篇莫名其妙的…今次回到移动应用的dirty job当中,搞基层建设。来自Nielsen Norman老爷子Group的小文一篇。下面进入译文。
如今市面上的很多应用都会在初次加载时提供“教练画板”形式的新手引导或教程任务(画着各种使用说明的半透明浮层)。此类引导有时确实可以帮助用户以正确的方式使用产品,不过很多时候也真是没有必要。如果你决定在自己的应用里增加这样的新手引导,那么不妨参考本文提供的一些设计原则,以打造出更有用的引导,而不是让用户只想赶快跳过的障碍。
简短,聚焦
无论何时都不能期望用户在使用应用之前乐于阅读说明性质的内容。人们打开应用不是为了花时间学习怎样使用UI,而是为了在最短的时间内以最小的成本解决他们手头的问题。其实这也是个悖论,因为一旦学会更有效率的使用UI,用户倒是可以为自己节省更多的时间。我们都知道,Web用户不愿阅读文字的习惯是出了名的,而移动用户在这方面则有过之而无不及,因为在移动情境中,人机会话时间更加有限,注意力更容易分散。
即便你的用户愿意去阅读那些说明,一下子看到太多内容也会加重其认知负荷。由于用户无法在阅读浮层上的说明内容的同时进行实际操作,所以他们必须首先将说明内容记忆下来,然后再投入实用。而人类的短期记忆难以保存太多的内容,信息在20秒左右的时间内就会开始被遗忘。因此,相比于在一个浮层上一次性展示UI当中每个地方的说明,不如一次聚焦在一两个上面。
Morningstar的iPad应用:一个浮层上展示了太多的UI说明。其实这里的一些UI元素是具有不错的自解释性的(例如点击文章标题阅读全文),完全没必要一股脑都塞给用户。
减少说明的焦点可以使用户将注意力放在最重要的说明上。一次展示的说明越少,用户越有可能去阅读并记忆下来。另外,这种方式也更具有引导作用,人们会更加乐于模仿说明中的指示来尝试着进行操作,以确保自己的理解是正确的。
Youtube的安卓应用:只会在使用过程中的相关环节向用户展示对应的引导说明,而不是一上来就一股脑的抛出所有,管你用户记住没记住。一次一个焦点,直接引导用户尝试操作,使其需要阅读和记忆的信息量尽可能的少。
寻找正确的时机,为用户提供最重要的引导提示,一次一个,使他们更容易理解和掌握。
避免一连串的提示
有些时候,一个界面里会有多个功能点需要被讲解。然而通过一次一个的方式接二连三的蹦出浮层进行说明,则会使用户更加不耐烦的关掉这些说明,而不管它们是不是真的有用。你可以想象每个用户都有一个小容器用来盛放引导提示内容——那一定是喝威士忌的小杯,而不是一扎一扎喝啤酒的大杯——你不能给用户灌的太多,也不能灌的太快。
接连不断的展示引导信息不仅会产生短期记忆方面的问题,而且会让新用户觉得你的应用过于复杂,望而生畏。记住,在实际当中,这样的初体验足以使他们关掉你的应用,然后去寻找其他的替换方案。
iPad上的Makr应用:用户每到一个新区域,都会收到一系列的引导提示。提示内容太过文字化,而且在用户实际使用之前就讲到了太多关于多步骤流程的操作方法。用户无法边学边做,在与实际UI进行交互之前只能强行记忆那些操作步骤。而且没有任何标识能够让用户知道接下来还有多少提示需要看;整个学习过程令人非常反感,如果这也能叫做学习。
Makr带来了一连串的提示,而且由于内容太过文字化,如果用户快速的略过,便真的无法得到任何有用的信息,然后在面对实际工作界面时将完全无所适从。此外,虽然每条提示都是气泡的形式,且有明确的箭头指向对应的说明对象,但在说明内容当中却会提到其他的UI元素,非常焦虑。
尽量使用图形元素
使用图文并茂的形式,而不只是干巴巴的文字,这将能使用户在最短的时间里对信息产生大致的了解。
对于前面提到的多步骤说明,可以尝试将每一步内容浓缩为“恰当的图形元素+简短的文字”,并整合到一个展示层面上;这种方式即有利于用户阅读,也可以使多步骤的流程更直观、易懂、易记忆。
下面是我们做的Makr重设计建议方案。三步的操作流程被放在一起,通过图文并茂的形式展示出来。通过统一的标题“定制化你的模板”,用户立刻就可以了解这个会话是关于什么的,而下面的三个步骤说明让他们可以很快了解到怎样完成这件事情。
当然,这并非完美的重设计方案,因为用户仍然需要在实际上手之前将这些内容记下来先,但相比于之前的版本,它至少是更易读易理解的。当你觉得有必要通过一系列提示来告诉用户怎样完成某种复杂的多步骤操作时,不妨考虑这类替代方案。
不要和实际界面混淆
必须使引导提示在外观上与实际界面元素有着明确的区分,否则引导提示就是在干扰实际界面,用户也会迷茫,甚至会把教学内容当做功能界面,试着与其交互。
在我们最近做的当中,我们发现,用户在使用Wimbledon应用的时候总是在试着点击教学内容当中那些地标图标。他们的引导提示做的太精细、太像周围的实际UI了,人们根本没意识到这里是不可交互的教学内容。
要使提示内容与普通的界面元素区分开来,最简单的方式是使用不同的字体。我们通常可以见到很多手写字体风格的提示,确实可以与实际UI当中的文字产生鲜明的对比。
来看个反例。在Ness的iPhone应用中,引导提示和某动作菜单都使用了相同的字体风格,这很容易给用户带来迷茫,难以判断那些是帮助文字,哪些是可交互的元素。
在设计移动应用的新手引导时,一个重要的原则就是尽可能的保持简短。聚焦于当前界面中最主要的交互任务,以图文并茂的方式提供最易扫描的说明内容,避免一连串的提示。同时,还要确保你的提示内容不会与应用的实际UI混淆在一起。
推荐阅读:
相关书籍推荐
译文代表原作者观点。欢迎,或到进一步交流探讨。
本站原创编译文章。如需转载,请注明:本文来自
译者信息: C7210 – UX玩家、交互设计师、曾经的视觉与前端、猫奴、guitar fucker.
版权所有:非特殊声明均为本站原创文章,转载请注明出处:
订阅更新:您可以通过
您可能感兴趣的文章添加应用详情页,如果不添加将使用弹窗方式打开
alimama_demo\AndroidManifest.xml
### 4. 选择推广样式
下面列出了SDK所支持的所有样式。
#### 4.1 横幅(banner)
步骤1:添加插件apk(如:Banner_plugin-1.0.apk)到项目工程的 'assets/mu/'目录下
步骤2:在需要添加样式的布局文件中加入一个ViewGroup来给样式定位
步骤3:在集成页的代码中添加
alimama_demo\src\com\alimama\mobile\demo\BannerActivity.java
public class BannerActivity extends Activity {
private BannerP
private BannerController mC
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.banner);
ViewGroup nat = (ViewGroup) findViewById(R.id.bannerParent);
String slotId = "59335";//注意:该广告位只做测试使用,请勿集成到发布版app中
setupAlimama(nat, slotId);
public void onBackPressed() {
boolean interrupt =
if (mController != null) {// 通知Banner推广返回键按下,如果Banner进行了一些UI切换将返回true
// 否则返回false(如从 expand状态切换会normal状态将返回true)
interrupt = mController.onBackPressed();
if (!interrupt)
super.onBackPressed();
private void setupAlimama(ViewGroup nat, String slotId) {
MmuSDK mmuSDK = MmuSDKFactory.getMmuSDK();
mmuSDK.init(getApplication());//初始化SDK,该方法必须保证在集成代码前调用,可移到程序入口处调用
properties = new BannerProperties(slotId, nat);
mController = (BannerController) properties.getMmuController();
mmuSDK.attach(properties);
PS:更多设置请参考Demo中集成代码。
|:-----------:|
| 图6-1 banner推广 |
#### 4.2 插屏
步骤1:添加插件apk(如:InsertPlugin-1.0.apk)到项目工程的 'assets/mu/'目录下
步骤2:在需要添加样式的布局文件中加入一个ViewGroup来给样式定位
--请将该布局添加到原来布局最上层,并且长宽全部填充满--
步骤3:在集成页的代码中添加
alimama_demo\src\com\alimama\mobile\demo\InsertActivity.java
public class InsertActivity extends Activity{
private InsertP
private InsertController mC
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.interstitial);
ViewGroup parent = (ViewGroup) findViewById(R.id.nat);
final String slotId = "59338";//注意:该广告位只做测试使用,请勿集成到发布版app中
setupAlimama(parent, slotId);
Button btLoad = (Button) findViewById(R.id.interstitialLoad);
btLoad.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(mController != null){
mController.load(slotId);//显示插屏
Button btClose = (Button) findViewById(R.id.interstitialClose);
btClose.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(mController != null){
mController.close();//隐藏插屏
private void setupAlimama(ViewGroup parent, String slotId) {
MmuSDK mmuSDK = MmuSDKFactory.getMmuSDK();
mmuSDK.init(getApplication());//初始化SDK,该方法必须保证在集成代码前调用,可移到程序入口处调用
properties = new InsertProperties(slotId, parent);
mController = (InsertController) properties.getMmuController();
mmuSDK.attach(properties);
PS:更多设置请参考Demo中集成代码。
|:-----------:|
| 图6-1 banner推广 |
#### 4.3 推广墙
* 需要类库 'android-support-v4.jar',并且需要在Manifest文件中注册“推广墙”Activity.
步骤1: 添加插件apk(如:HandlePlugin-1.0.apk)到项目工程的 'assets/mu/'目录下
步骤2:在Manifest中注册墙使用的Activity
alimama_demo\AndroidManifest.xml
-- 推广墙 --
步骤3:在需要添加样式的布局文件中加入一个ViewGroup来给样式定位
步骤4:在集成页的代码中添加
alimama_demo\src\com\alimama\mobile\demo\HandleActivity.java
public class HandleActivity extends Activity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.inset);
ViewGroup nat = (ViewGroup) findViewById(R.id.nat);
String slotId = "60338";
setupAlimama(nat, slotId);
private void setupAlimama(ViewGroup nat, String slotId) {
MmuSDK mmuSDK = MmuSDKFactory.getMmuSDK();
mmuSDK.init(getApplication());
HandleProperties properties = new HandleProperties(slotId,nat);
mmuSDK.attach(properties);
PS:更多设置请参考Demo中集成代码。
* 电商墙效果
|:------------------------:|:------------------------------------:|
图8-1 电商墙样式
| 图8-2 电商墙搜索
* 应用墙效果
|:------------------------:|:------------------------------:|
图8-1 精品推荐样式1
| 图8-2 精品推荐样式2
### 5. 备注
#### 5.1 可以通过设置下面的变量改变SDK默认的界面或者行为
>* ExchangeConstants.full_screen: 显示全屏推荐时是否隐藏系统工具栏
>* ExchangeConstants.ONLY_CHINESE: 是否在非中文环境下展示,默认关闭
>* ExchangeConstants.TIPS_DOWNLOAD:如果使用全屏样式对notification不可见,可设置该字段下载完成会有Toast提示。
注意:不要改变这两个文件里面元素的id, 但是可以改变他们的属性, 比如,android:visible, 字体颜色,大小等。
#### 5.2 权限说明
android.permission.INTERNET
允许应用程序联网,以便向我们的服务器端发送数据。
android.permission.ACCESS_NETWORK_STATE
获取用户手机的IMEI,用来唯一的标识用户。(如果您的应用会运行在无法读取IMEI的平板上,我们会将mac地址作为用户的唯一标识,请添加权限: android.permission.ACCESS_WIFI_STATE )
android.permission.READ_PHONE_STATE
检测网络状态
android.permission.WRITE_EXTERNAL_STORAGE
将更新的APK临时存在SD卡里。
#### 5.3 混淆
-dontwarn android.taobao.**
-dontwarn com.taobao.**
-dontwarn com.alimama.mobile.**
-keep class com.taobao.** {*; }
-keep class com.alimama.mobile.**{*; }
-keep class android.taobao.** {*; }
### 6. 技术支持
请发邮件至,我们会尽快回复您。关于Tanx移动
Tanx移动是阿里妈妈旗下面向移动端媒体(含开发者)的开放平台。Tanx移动借助强大的阿里数据支撑,通过实时竞价技术,提高移动媒体售卖效率,优化媒体收益。
Tanx移动SDK支持Banner(横幅)、插屏、推广墙三种推广样式。在保证稳定服务的同时,通过灵活的架构,接入多种着陆方式的推广资源,及应用、电商、品牌等多种推广内容资源。综合优化流量价值,实现媒体收益与用户体验的平衡。
出于对推广效果的考虑,要求合作伙伴日活跃用户不低于1000,推广位日均PV不低5000。
要求加入的推广渠道必须符合《阿里妈妈推广者规范》不能涉及黄,赌,毒,以及一些准色情的内容,例如脱衣,女优等;如有发现,我们将按相关规范进行处理。
推广资源管理
完整准确的填写推广资源信息,方便您更好进行推广资源的分配管理,也帮助我们更合理有效的提供符合您推广资源的产品或推广权限。
如何开始推广
开发者登录Tanx移动,在推广管理中创建APP,APP提交成功后(在“推广管理-应用管理”页面查看状态)即可新建推广位,获取推广位ID并下载集成SDK。集成完毕后进入“推广管理-推广位管理”进行推广位流量配置,即可按照您所设置的流量配比展现相应的推广内容。
推广位权限
开发者媒体在完成SDK集成以及推广备案后,可以自动获得爱淘宝推广权限和应用墙推广
权限。当推广位Pv值达到要求后,开放更多的推广资源获取更高收益。
推广位设置条数
基于优化用户体验,我们不建议在同一页面设置2个及以上推广位。
Banner推广
Banner推广是在移动应用的特定区域内固定展示推广内容的样式,以图文/图片方式向用户展示了精彩的推广创意。用户点击banner之后的效果包含下载应用、跳转到应用市场或电商推广页面等。
插屏推广是在移动应用里以半屏或全屏大图的方式展现推广内容,在应用暂停、页面切换的场景下尤为适宜。能极大减少应用使用时的界面占用,具有高质量的视觉效果,用户体验良好,收益更有保障。
推广墙推广
推广墙由小淘器入口+推广墙两部分组成,可在不影响产品体验的情况下,将入口icon放置于任何适合接入推广的场景,或高曝光量的页面的任何位置。与应用结合度高,对用户体验的影响较小,小淘器入口icon UI支持自定义,深度融入应用场景,更有效提高转化率。特别适合于对应用界面要求比较高的应用。
Tanx移动结算模式目前包括分成与定价两种情况。定价结算请咨询旺旺:故谦。
结算日期:每月20日左右结算上个自然月的收入。
新推广从创建、投放到实际上线有5到10分钟的生效时间,请关注生效时间。
如何更换推广状态
在后台提供的列表中,勾选相应的推广条目,点击“开始”或“暂停”按钮即可更改推广的状态。
推广位维度上当前推广的展现比例。
统计报表中的名词解释
点击次数:推广的点击次数。
点击率:推广点击次数与展示次数的百分比。
下载数:推广的下载次数。
平均点击价格:在某段时间内推广点击的平均单价。Android:若按下载结算,平均点击价格=下载单价×下载量/推广点击量。 iOS:若按点击计算,平均点击价格为推广点击的平均单价。
预估收入:推广投放产生的预估收入,自主推广收入以及推广网络预估收入的总和。
当接入网络为交叉互推时:
贡献展示数:应用为媒介时,推广的展示次数。
获得展示数:应用为被推广时,被展示的次数。
贡献点击量:应用为媒介时,推广的点击次数。
获得点击量:应用为被推广时,被点击的次数。
贡献下载数:应用为媒介时,推广的下载次数。
获得下载数:应用为被推广时,被下载的次数。
贡献点击率:应用为媒介时,推广点击次数与展示次数的百分比。
获得点击率:应用为被推广时,被推广点击次数与展示次数的百分比。阿里妈妈打造APP孵化器 TANX移动平台上线
近日,阿里妈妈旗下针对无线开发者服务的开放平台Tanx移动()正式上线,今后平台将为APP开发者提供流量变现渠道和推广资源,帮助APP应用实现商用化。
目前,国内手机应用开发者总数约100万人,但真正盈利的APP并不多。为此,阿里妈妈Tanx移动平台,将通过多元化的营销工具打通与淘宝和天猫商家之间的通道,形成营销商业闭环。
据介绍,APP开发者加入Tanx移动可以推广其他应用及商品,获取收益,并通过Tanx移动的自主服务,管理自己的推广资源。其次,开发者还可以利用平台的交叉互推功能找到与自己匹配的APP,进行联合推广。
据悉,阿里妈妈近期将开展&移动创业新贵助力计划&,首期限量招募100位优质APP开发者将获得最高双倍收入激励。未来Tanx移动还将整合阿里巴巴集团其他资源,包括阿里云的服务器使用权、风投等。
最新图文推荐
最新专栏文章
大家感兴趣的内容
网友热评的文章
seajs.config({
base: "/resource/passapi/scripts/"
seajs.use('seajs/seajs-css');
seajs.use(['artdialog/src/dialog-plus'], function (dialog) {
$('#favorite').on('click', function(){
$.getJSON('/passapi.php?op=userstatus&callback=?', function(data){
if (data.status == 1) {
var _this = $('#favorite').find('span');
$.getJSON('/?app=favorite&controller=favorite&action=add&jsoncallback=?&contentid='+contentid, function(json){
if(json.state){
_this.html('添加应用详情页,如果不添加将使用弹窗方式打开
alimama_demo\AndroidManifest.xml
### 4. 选择推广样式
下面列出了SDK所支持的所有样式。
#### 4.1 横幅(banner)
步骤1:添加插件apk(如:Banner_plugin-1.0.apk)到项目工程的 'assets/mu/'目录下
步骤2:在需要添加样式的布局文件中加入一个ViewGroup来给样式定位
步骤3:在集成页的代码中添加
alimama_demo\src\com\alimama\mobile\demo\BannerActivity.java
public class BannerActivity extends Activity {
private BannerP
private BannerController mC
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.banner);
ViewGroup nat = (ViewGroup) findViewById(R.id.bannerParent);
String slotId = "59335";//注意:该广告位只做测试使用,请勿集成到发布版app中
setupAlimama(nat, slotId);
public void onBackPressed() {
boolean interrupt =
if (mController != null) {// 通知Banner推广返回键按下,如果Banner进行了一些UI切换将返回true
// 否则返回false(如从 expand状态切换会normal状态将返回true)
interrupt = mController.onBackPressed();
if (!interrupt)
super.onBackPressed();
private void setupAlimama(ViewGroup nat, String slotId) {
MmuSDK mmuSDK = MmuSDKFactory.getMmuSDK();
mmuSDK.init(getApplication());//初始化SDK,该方法必须保证在集成代码前调用,可移到程序入口处调用
properties = new BannerProperties(slotId, nat);
mController = (BannerController) properties.getMmuController();
mmuSDK.attach(properties);
PS:更多设置请参考Demo中集成代码。
|:-----------:|
| 图6-1 banner推广 |
#### 4.2 插屏
步骤1:添加插件apk(如:InsertPlugin-1.0.apk)到项目工程的 'assets/mu/'目录下
步骤2:在需要添加样式的布局文件中加入一个ViewGroup来给样式定位
--请将该布局添加到原来布局最上层,并且长宽全部填充满--
步骤3:在集成页的代码中添加
alimama_demo\src\com\alimama\mobile\demo\InsertActivity.java
public class InsertActivity extends Activity{
private InsertP
private InsertController mC
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.interstitial);
ViewGroup parent = (ViewGroup) findViewById(R.id.nat);
final String slotId = "59338";//注意:该广告位只做测试使用,请勿集成到发布版app中
setupAlimama(parent, slotId);
Button btLoad = (Button) findViewById(R.id.interstitialLoad);
btLoad.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(mController != null){
mController.load(slotId);//显示插屏
Button btClose = (Button) findViewById(R.id.interstitialClose);
btClose.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if(mController != null){
mController.close();//隐藏插屏
private void setupAlimama(ViewGroup parent, String slotId) {
MmuSDK mmuSDK = MmuSDKFactory.getMmuSDK();
mmuSDK.init(getApplication());//初始化SDK,该方法必须保证在集成代码前调用,可移到程序入口处调用
properties = new InsertProperties(slotId, parent);
mController = (InsertController) properties.getMmuController();
mmuSDK.attach(properties);
PS:更多设置请参考Demo中集成代码。
|:-----------:|
| 图6-1 banner推广 |
#### 4.3 推广墙
* 需要类库 'android-support-v4.jar',并且需要在Manifest文件中注册“推广墙”Activity.
步骤1: 添加插件apk(如:HandlePlugin-1.0.apk)到项目工程的 'assets/mu/'目录下
步骤2:在Manifest中注册墙使用的Activity
alimama_demo\AndroidManifest.xml
-- 推广墙 --
步骤3:在需要添加样式的布局文件中加入一个ViewGroup来给样式定位
步骤4:在集成页的代码中添加
alimama_demo\src\com\alimama\mobile\demo\HandleActivity.java
public class HandleActivity extends Activity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.inset);
ViewGroup nat = (ViewGroup) findViewById(R.id.nat);
String slotId = "60338";
setupAlimama(nat, slotId);
private void setupAlimama(ViewGroup nat, String slotId) {
MmuSDK mmuSDK = MmuSDKFactory.getMmuSDK();
mmuSDK.init(getApplication());
HandleProperties properties = new HandleProperties(slotId,nat);
mmuSDK.attach(properties);
PS:更多设置请参考Demo中集成代码。
* 电商墙效果
|:------------------------:|:------------------------------------:|
图8-1 电商墙样式
| 图8-2 电商墙搜索
* 应用墙效果
|:------------------------:|:------------------------------:|
图8-1 精品推荐样式1
| 图8-2 精品推荐样式2
### 5. 备注
#### 5.1 可以通过设置下面的变量改变SDK默认的界面或者行为
>* ExchangeConstants.full_screen: 显示全屏推荐时是否隐藏系统工具栏
>* ExchangeConstants.ONLY_CHINESE: 是否在非中文环境下展示,默认关闭
>* ExchangeConstants.TIPS_DOWNLOAD:如果使用全屏样式对notification不可见,可设置该字段下载完成会有Toast提示。
注意:不要改变这两个文件里面元素的id, 但是可以改变他们的属性, 比如,android:visible, 字体颜色,大小等。
#### 5.2 权限说明
android.permission.INTERNET
允许应用程序联网,以便向我们的服务器端发送数据。
android.permission.ACCESS_NETWORK_STATE
获取用户手机的IMEI,用来唯一的标识用户。(如果您的应用会运行在无法读取IMEI的平板上,我们会将mac地址作为用户的唯一标识,请添加权限: android.permission.ACCESS_WIFI_STATE )
android.permission.READ_PHONE_STATE
检测网络状态
android.permission.WRITE_EXTERNAL_STORAGE
将更新的APK临时存在SD卡里。
#### 5.3 混淆
-dontwarn android.taobao.**
-dontwarn com.taobao.**
-dontwarn com.alimama.mobile.**
-keep class com.taobao.** {*; }
-keep class com.alimama.mobile.**{*; }
-keep class android.taobao.** {*; }
### 6. 技术支持
请发邮件至,我们会尽快回复您。}

我要回帖

更多关于 tanx移动平台 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信