一号优惠经验分享网
51福利网的各种薅羊毛福利经验笔记

用HBuilderX打包APP笔记

制作html5+APP笔记

1.文件首页可以用在线网址,也可以写在默认的index.html文件, 不支持php文件,暂时不知道为啥

2.👉HBuilderX打包,常用android权限配置

51福利网

需要加入打开常用权限:

相机和相册:方便用户报错等上传图片

看了👉hbuilder的uni-app,wap2app和5+app什么区别,怎么选择 决定还是用它的uni-app了。如果是简单网页还是可用5+APP的

制作uni-app笔记

在 uni-app 中,你通常不会直接编辑 index.html 文件,因为 uni-app 使用的是基于 Vue.js 的单页应用架构,页面的入口是 App.vue 或者 main.js,而不是传统的 index.html

打开你希望添加功能的页面的 .vue 文件(例如 pages/index/index.vue)。

vue,js,css等各种语法教程👉介绍 | uni-app官网 (dcloud.net.cn) 含视频教程

腾讯视频教程:复制以下发送到任意微信聊天窗口打开

小程序://腾讯课堂/LZIzPIqo7qVfArb

0、uni-app的首页我应该在哪里写

在uni-app中,首页的代码通常写在pages目录下的对应页面文件夹中。

例如,如果你有一个名为home的首页,你可以在pages/home目录下编写首页的代码。

一般来说,首页通常会有一个对应的.vue文件,例如index.vue,这是默认的首页入口文件。你可以在这个文件中编写首页的HTML、CSS和JavaScript代码。

在Vue中,我们通常不直接在.vue文件中放入HTML代码,而是使用模板标签<template>

如果你想在多个页面之间共享某些代码,你可以将这些代码放在一个单独的组件文件中,然后在需要的地方引入和使用这个组件。

请注意,uni-app是一个使用Vue.js开发跨平台应用的框架,因此你可以使用Vue.js的语法和特性来编写你的首页代码。

此外,如果你想要定制首页的导航栏或其他UI元素,你可以在pages/index/index.vue文件中进行修改。这个文件是默认的首页页面文件,你可以在这里添加自定义的HTML、CSS和JavaScript代码来定制首页的外观和功能。

以下是一个简单的index.vue文件示例,其中包含HTML模板代码:

<template>  
  <div class="home">  
    <h1>Welcome to My Uni-App App</h1>  
    <p>This is the homepage of my uni-app application.</p>  
    <router-view></router-view>  
  </div>  
</template>  
  
<script>  
export default {  
  name: 'Home',  
}  
</script>  
  
<style scoped>  
.home {  
  display: flex;  
  flex-direction: column;  
  align-items: center;  
  justify-content: center;  
  height: 100vh;  
}  
</style>

这是一个简单的首页模板,其中包含一个标题、一段描述和一个router-view组件。router-view组件用于渲染当前路由对应的组件视图。你可以根据自己的需求进行修改和扩展。

您自己的HTML代码包含样式和JavaScript部分,以及一个主内容区域。为了将这段代码加入到index.vue文件中,您可以将整个样式部分放在<style>标签内,将JavaScript部分放在<script>标签内,然后在Vue模板中添加适当的位置来放置内容区域。

1.我用hbuilder创建uni-app,如何获取用户手机参数并带上固定参数appkey返回给后端服务器API,具体在hbuilder里面怎么操作

在HBuilder中创建uni-app并获取用户手机参数并带上固定参数appkey返回给后端服务器API,你可以按照以下步骤进行操作:

  1. 打开HBuilderX,创建一个uni-app项目。
  2. 在项目中,找到“manifest.json”文件,该文件存储了应用的基本信息和配置。
  3. 在“manifest.json”文件中,找到“plus”字段,该字段用于配置uni-app的扩展功能。
  4. 在“plus”字段中,添加一个“uniCloud”字段,用于配置uni-cloud的相关参数。
  5. 在“uniCloud”字段中,添加一个“AppKey”字段,用于设置你的固定参数appkey。例如:
"plus": {  
  "uniCloud": {  
    "AppKey": "your_appkey"  
  }  
}
  • 6.在uni-app中,使用uni.getSystemInfo()方法获取用户手机参数。该方法会返回一个包含手机系统信息的对象。你可以使用该对象中的属性来获取手机参数,如操作系统、屏幕分辨率等。例如:
uni.getSystemInfo({  
  success: function (res) {  
    var systemInfo = res.system; // 包含手机系统信息  
    // 在这里处理系统信息和其他参数,并构造请求数据  
  }  
});

uni.getSystemInfo() 方法用于获取用户手机的系统信息。当你调用这个方法时,它会异步返回一个对象,该对象包含了以下系统信息:

  • model: 手机型号
  • pixelRatio: 屏幕像素密度
  • screenWidth: 屏幕宽度(单位:px)
  • screenHeight: 屏幕高度(单位:px)
  • windowWidth: 当前窗口宽度(单位:px)
  • windowHeight: 当前窗口高度(单位:px)
  • language: 设备当前设置的系统语言
  • version: 操作系统版本
  • platform: 操作系统平台

这些信息可以帮助你了解用户设备的具体情况,以便进行相应的适配和优化。请注意,返回的具体信息可能会因不同的设备和操作系统而有所不同。

  • 7.构造请求数据时,将获取到的手机参数和固定参数appkey一起发送给后端服务器API。你可以使用uni-app提供的网络请求API,如uni.request()来发送请求。例如:
var data = {  
  // 构造请求数据,包含手机参数和appkey  
  systemInfo: systemInfo,  
  appkey: 'your_appkey'  
};  
uni.request({  
  url: 'https://your_server_api/api', // 后端服务器API地址  
  method: 'POST', // 请求方法  
  data: data, // 请求数据  
  success: function (res) {  
    // 处理后端服务器返回的结果  
  },  
  fail: function (err) {  
    // 处理请求失败的情况  
  }  
});

以上是获取用户手机参数并带上固定参数appkey返回给后端服务器API的基本步骤。请注意,这只是一个简单的示例,具体实现可能需要根据你的项目需求进行调整和扩展。

复制按钮功能

如果复制邮箱,在<template>里面添加代码

 <button class="small-button" @click="copyEmail('你的邮箱账号')">复制客服邮箱</button>

在<script>里面添加

<script>  
export default {  
  
  methods: {  
    copyEmail(email) {  
      try {  
        uni.setClipboardData({  
          data: email,  
          success(res) {  
            uni.showToast({  
              title: '复制成功',  
              icon: 'success'  
            });  
          },  
          fail(err) {  
            uni.showToast({  
              title: '复制失败',  
              icon: 'none'  
            });  
          }  
        });  
      } catch (error) {  
        console.error('Error copying email:', error);  
      }  
    }  
  }  
}  

在uni-app中怎么设置自建app的专属ua 比如夸克浏览器ua最后都会显示Quack

有官方教程👉uni-app官网 (dcloud.net.cn) ua后缀

还需要确保在打包应用时,自定义的userAgent设置被正确地包含在生成的应用包中。有时候,重新编译或安装应用可能是必要的,以确保设置生效。

添加了打包之后还是不行👉APP端自定UA在自定义调试基座不生效吗?

直接指定安卓和ios的ua

"useragent_android": {                      //可选,JSON对象,Android平台应用UserAgent相关配置,优先级高于useragent配置  
            "value": "",                                            //可选,字符串类型,设置的默认userAgent值  
            "concatenate": false                                    //可选,Boolean类型,是否将value值作为追加值连接到系统默认userAgent值之后  
        },  
        "useragent_ios": {                          //可选,JSON对象,iOS平台应用UserAgent相关配置,优先级高于useragent配置  
            "value": "",                                            //可选,字符串类型,设置的默认userAgent值  
            "concatenate": false                                    //可选,Boolean类型,是否将value值作为追加值连接到系统默认userAgent值之后  
        }

要将export default {代码块加到已有的代码中

你可以将新的数据属性和方法添加到datamethods中,然后更新mounted生命周期方法以调用新的getUserAgent方法。下面是将你的代码合并到已有代码的示例:

<script>  
export default {  
  data() {  
    return {  
      version: null, // 用于存储提取的版本号  
      customUserAgent: '', // 用于存储自定义User Agent  
      targetLink: '_blank' // 用于控制链接的target,可以根据需要更改  
    };  
  },  
  methods: {  
    fetchVersion() {  
      uni.request({  
        url: 'https://img.51yhyh.com/apk/appver/stver.js',  
        success: (res) => {  
          const scriptContent = res.data;  
          // 调整正则表达式以正确匹配版本号  
          const version = scriptContent.match(/document.writeln\("V(\d+\.\d+)/)[1];  
          if (version) { // 检查版本号是否存在  
            this.version = version;  
          } else {  
            console.error('无法提取版本号');  
          }  
        },  
        fail: (err) => {  
          console.error('Failed to fetch script:', err);  
        }  
      });  
    },  
    copyEmail(email) {  
      uni.setClipboardData({  
        data: email,  
        success: () => {  
          uni.showToast({  
            title: '复制成功',  
            icon: 'success'  
          });  
        },  
        fail: () => {  
          uni.showToast({  
            title: '复制失败',  
            icon: 'none'  
          });  
        }  
      });  
    },  
    getUserAgent() {  
      const systemInfo = uni.getSystemInfo(); // 使用异步方法获取系统信息  
      this.customUserAgent = systemInfo.userAgent + ' 51app';  
    }  
  },  
  mounted() {  
    this.getUserAgent(); // 在组件挂载后获取自定义User Agent  
    this.fetchVersion(); // 在组件挂载后发起请求提取版本号  
  }  
};  
</script>

在这个示例中,我添加了customUserAgent数据属性以及相应的getUserAgent方法。在mounted生命周期方法中,我先调用了getUserAgent方法来获取自定义User Agent,然后调用fetchVersion方法来提取版本号。这样,你就可以在页面上显示自定义的User Agent了。

hbulider的uni-app创建 app.vue是做什么的?

官方教程👉App.vue/App.uvue | uni-app官网 (dcloud.net.cn)

App.vue/uvue是uni-app的主组件。uni-app js引擎版是app.vue。uni-app x是app.uvue。以下出现的app.vue一般泛指包含了app.uvue

所有页面都是在App.vue下进行切换的,是应用入口文件。但App.vue本身不是页面,这里不能编写视图元素,也就是没有<template>

这个文件的作用包括:监听应用生命周期、配置全局样式、配置全局的存储globalData

应用生命周期仅可在App.vue中监听,在页面监听无效。

hbulider 是一个基于 uni-app 的开发工具,用于快速开发跨平台应用。uni-app 是一个使用 Vue.js 开发所有前端应用的框架,它可以编译到 iOS、Android、Web 以及各种小程序等多个平台。

在 hbulider 中创建的 app.vue 通常是一个项目的入口文件。它通常包含以下内容:

  1. 数据和状态管理app.vue 可能会包含全局的状态管理,例如使用 Vuex 管理应用的状态。
  2. 路由管理:对于多页面应用,app.vue 可能包含主要的路由配置。
  3. 应用生命周期管理:对于整个应用的启动、挂载和卸载等生命周期事件,app.vue 也可能进行了配置或编写相关逻辑。
  4. 公共组件和样式:一些公共的组件和全局样式可能也在 app.vue 中定义或引入。
  5. API 请求和其他配置:例如,从服务器获取数据、设置全局配置等也可能在 app.vue 中进行。

总之,app.vue 是整个应用的入口点,它负责初始化应用、配置各种资源和设置,并确保整个应用按照预期的方式运行。如果你在 hbulider 中创建了 app.vue,那么它很可能是你项目中的核心文件之一。

但是我代码都放到了pages/index/index,vue 我打包的时候该怎么设置

如果你将主要的代码都放在了 pages/index/index.vue,那么在打包的时候,你需要确保所有的资源、依赖和配置都指向正确的位置。

入口文件: 在 main.js 或 main.ts 中,确保你引入了正确的页面:

import Vue from 'vue';  
import App from './pages/index/index';  
  
Vue.config.productionTip = false;  
  
new Vue({  
  render: h => h(App),  
}).$mount('#app');

怎么打包的uni-app总是在顶部有个uni-app的标题

如果你在打包uni-app时,总是出现一个“uni-app”的标题,这可能是由于默认的标题栏设置导致的。在uni-app中,每个页面默认都会有一个标题栏,标题栏的样式和内容可以在页面的样式文件中进行自定义。
要解决这个问题,你可以按照以下步骤进行操作:

单独的页面隐藏

可以在pages.json里 单独的路由style下面配置 “app-plus”: {“titleNView”: false}

"path": "pages/index/index",
"style": {
	// "navigationBarTitleText": "拉新奖励"
		"app-plus":{
			"titleNView": false
		}
	}

给整个app 隐藏

可以在globalStyle 下 配置一个style “app-plus”: {“titleNView”: false}

"globalStyle": {
	"navigationBarTextStyle": "black",
	"navigationBarTitleText": "uni-app",
	"navigationBarBackgroundColor": "#F8F8F8",
	"backgroundColor": "#F8F8F8",
	"app-plus":{
		"titleNView":false
	}
}

如果是修改标题文字,可用尝试在 page.json里面有如下代码

"navigationBarTitleText": "uni-app",
//在这里修改试试

自定义错误页面

官方教程👉自定义错误页面

一定要放在放到项目根目录下的 hybrid/html 文件夹中,否则可能不会被打包

但是我这样操作后没用,不知道为啥,于是我尝试以下方法

第一步:创建404 页面 在 App.vue 的 onPageNotFound 生命周期中处理跳转到 404 页面

<script>
	export default {
		onLaunch: function() {
			console.log('App Launch')
		},
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},
		/* 配置页面未找到 */
		onPageNotFound: function(res) {
			console.log(res)
				// 跳转到 404 页面:
				uni.redirectTo({
					url: "pages/error/error", // 404 页面的路径
				});
			},
	}
</script>

<style>
	/*每个页面公共css */
</style>

新建一个error.vue页面,以下是一个示例的 uni-app 错误页模板,用于提示用户暂时无法访问并引导他们返回首页:

<template>  
  <view class="error-page">  
    <text class="error-message">暂时无法访问</text>  
    <text class="back-button" @click="goToHome">返回首页</text>  
  </view>  
</template>  
  
<script>  
export default {  
  methods: {  
    goToHome() {  
      uni.switchTab({  
        url: '/pages/index/index' // 首页的路径  
      });  
    }  
  }  
};  
</script>  
  
<style scoped>  
.error-page {  
  display: flex;  
  flex-direction: column;  
  align-items: center;  
  justify-content: center;  
  height: 100vh;  
  background-color: #f5f5f5;  
}  
  
.error-message {  
  font-size: 24px;  
  margin-bottom: 20px;  
}  
  
.back-button {  
  font-size: 16px;  
  color: #333;  
  margin-bottom: 10px;  
}  
</style>

uniapp创建文件目录后,再删除,重新启动,报文件查找失败

uni-app创建文件目录后,再删除,重新启动,报文件查找失败

原因:创建文件目录之后,pages.json文件会自动生成对应路径,

处理方法:找到代码删除即可。

错误:页面跳转不能其他页面

在控制台可以看到错误提示:

比如不能打开没有tabBar页面 Uncaught (in promise) {errMsg: “switchTab:fail can not switch to no-tabBar page”}

就需要添加tabBar 具体查看上面几分钟tabBar相关视频教程。就好了

一号优惠 · 51福利网薅羊毛福利具有时效性,如已失效,请留言
文章名称:《用HBuilderX打包APP笔记》-一号优惠 · 51福利网
免责申明:本站所有活动信息均来自网络,如有失效、违规、不实或侵权,请联系我们删除。谢谢

评论 抢沙发

一号优惠经验分享网最新最全薅羊毛,现金红包线报网

一号优惠经验分享网提供每日最新内部优惠,薅羊毛活动,现金红包领取,免费福利和网赚福利手机赚钱线报,打造中国最受欢迎的网赚信息发布平台!51福利网

51联盟线报群赚钱·合作·帮助

登录

找回密码

注册