HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

uni-app在APP端实现截屏分享功能

分享 截屏 App

目标

点击分享按钮,截取APP屏,在分享到第三方,如微信,朋友圈。

截屏

方法一:html2canvas.js

  • 这种方法需要获取DOM节点,app端获取不到。如果可以获取DOM节点,可以尝试使用此方法。

方法二:5+api

let pages = getCurrentPages();  
let page = pages[pages.length - 1];  
let ws = page.$getAppWebview();  
let bitmap = new plus.nativeObj.Bitmap('drawScreen');  
// 将webview内容绘制到Bitmap对象中  
ws.draw(bitmap, () => {  
  // 保存图片到本地  
  bitmap.save("_doc/drawScreen.jpg", {  
    overwrite: true  
  }, res => {  
    console.log(res.target); // 图片地址  
    bitmap.clear(); // 清除Bitmap对象  
  }, error => {  
    console.log(JSON.stringify(error)); // 保存失败信息  
    bitmap.clear(); // 清除Bitmap对象  
  });  
  // bitmap.clear(); // 清除Bitmap对象  
}, error => {  
  console.log(JSON.stringify(error)); // 绘制失败  
}, {  
  check: true, // 设置为检测白屏  
});

注意

  • 血的教训:之前能用,后面突然发现返回的路径一直是file://null,原来是 bitmap.save和 bitmap.clear的时间差的问题,一定要把bitmap.clear放在成功回调函数或者失败函数里面。
  • 在获取本地对象时,如果使用plus.webview.currentWebview()获取本地对象,有可能截屏时出现黑屏现象。
let ws= plus.webview.currentWebview();
  • 在APP端使用app端获取方法
// 因为这里只做app端,所以没有加上条件编译,如果多端的话加上APP的条件编译  
let pages = getCurrentPages();  
let page = pages[pages.length - 1];  
let ws = page.$getAppWebview();

分享

继续阅读 »

目标

点击分享按钮,截取APP屏,在分享到第三方,如微信,朋友圈。

截屏

方法一:html2canvas.js

  • 这种方法需要获取DOM节点,app端获取不到。如果可以获取DOM节点,可以尝试使用此方法。

方法二:5+api

let pages = getCurrentPages();  
let page = pages[pages.length - 1];  
let ws = page.$getAppWebview();  
let bitmap = new plus.nativeObj.Bitmap('drawScreen');  
// 将webview内容绘制到Bitmap对象中  
ws.draw(bitmap, () => {  
  // 保存图片到本地  
  bitmap.save("_doc/drawScreen.jpg", {  
    overwrite: true  
  }, res => {  
    console.log(res.target); // 图片地址  
    bitmap.clear(); // 清除Bitmap对象  
  }, error => {  
    console.log(JSON.stringify(error)); // 保存失败信息  
    bitmap.clear(); // 清除Bitmap对象  
  });  
  // bitmap.clear(); // 清除Bitmap对象  
}, error => {  
  console.log(JSON.stringify(error)); // 绘制失败  
}, {  
  check: true, // 设置为检测白屏  
});

注意

  • 血的教训:之前能用,后面突然发现返回的路径一直是file://null,原来是 bitmap.save和 bitmap.clear的时间差的问题,一定要把bitmap.clear放在成功回调函数或者失败函数里面。
  • 在获取本地对象时,如果使用plus.webview.currentWebview()获取本地对象,有可能截屏时出现黑屏现象。
let ws= plus.webview.currentWebview();
  • 在APP端使用app端获取方法
// 因为这里只做app端,所以没有加上条件编译,如果多端的话加上APP的条件编译  
let pages = getCurrentPages();  
let page = pages[pages.length - 1];  
let ws = page.$getAppWebview();

分享

收起阅读 »

关于使用HBuilder开发APP时,icon图标不能正常显示,只显示为一个白方块问题的解决

我是新手。网上也搜不到解决方法,至于官方能给你什么解决方法,呵呵。我提个问题还要扣积分。虽然是官方原本就有的。呵呵哒。果然不是AS 和VS。从来没有见过提个问题还要扣分。真的恶心。

对于mui.ttf文件配置在那的。我不知道,也没去学习过。但是就是这个文件导致了图标变成方框。无法加载。按道理字体和图标无关。教程上似乎也没说。反正就是这个文件最好放在根目录下。不要移动到其他目录。否则会导致图标无法加载。

继续阅读 »

我是新手。网上也搜不到解决方法,至于官方能给你什么解决方法,呵呵。我提个问题还要扣积分。虽然是官方原本就有的。呵呵哒。果然不是AS 和VS。从来没有见过提个问题还要扣分。真的恶心。

对于mui.ttf文件配置在那的。我不知道,也没去学习过。但是就是这个文件导致了图标变成方框。无法加载。按道理字体和图标无关。教程上似乎也没说。反正就是这个文件最好放在根目录下。不要移动到其他目录。否则会导致图标无法加载。

收起阅读 »

iOS App上架内购问题3.1.1条款被拒解决思路

iOS iOS打包

1.如何选择苹果内购买项目?

如果开发者想在 App 中解锁如订阅、游戏内货币、游戏关卡等访问权限,则必须使用 App 内购买项目。App 内购买项目主要分为 4 种展现形式,如下图:

在产品页面上,开发者可一次性推广多达 20 个 App 内购买项目,并同时为其他通过审核的 App 内购买项目做好推广准备。这样开发者可以灵活地根据业务需求(比如,当开发者打算推出限时促销或提供独家内容的时候)来更换产品页面上展示的 App 内购买项目。

需要注意的是,如果你的产品是需要定期续费的,那需要选择订阅类型;但如果是一次性消费不要再次订阅的,则选择非订阅类型。

此次,我们公司用到的苹果内购产品有两种会员:一种是订阅自动续费的,一种是非订阅产品,不会自动续费的。

2.内购产品上架需与 App 上架的包一起提交

这里需要重点注意一下,内购产品上架的时候一定要和 App 上架的包一起提交审核,不可以分开提交。如果你选择分开提交了,那内购永远不可能上架成功的。亲测过,一定要注意了。

3.App 内购买项目多地区上架,选择本地化适配或可增加过审几率

在 App Store 审核条款中,也指出“如果我们无法理解 App 的工作方式,或者 App 内购买项目不是那么一目了然,则审核会有所延误,并可能会导致 App 被拒绝。”所以,如果你的产品要是在多个地区上架的话,建议开发者要做好 App 内购买项目本地化工作,以免审核被拒。

4.四种声明条款

①用户协议和隐私条款

在 App 登录页面和产品购买页面,一定要有用户协议和隐私条款这两个东西。

②连续包月协议说明和自动续费声明

如果你的产品中有自动订阅产品类型,则需要加入连续包月协议说明。同时,还要在 App 产品页面写上自动续费声明。

5.App 应用描述中加入自动订阅描述

如果还是有些担心 App 内购买项目审核被拒,则可以选择在 App 应用描述当中加入自动订阅的内容描述,让苹果审核人员能够更加直观、清楚的看到 App 内购买项目相关情况。

6.虚拟产品不要加入第三方支付的 SDK

以上内容都准备好了的话,那最后就需要注意一下:如果你的 App 内购买项目是虚拟产品的话,不包括实物,请不要加入支付第三方的 SDK,不然检测出来可能会被拒掉。

Tips:由于 App 内购买项目的产品 ID 具有唯一性,即生成一次后就无法再次生成同一个 ID 的产品,包括删除后也无法使用同一个 ID。因此在选择产品类型,填写产品 ID 时,需要注意避免填错或误删了。

继续阅读 »

1.如何选择苹果内购买项目?

如果开发者想在 App 中解锁如订阅、游戏内货币、游戏关卡等访问权限,则必须使用 App 内购买项目。App 内购买项目主要分为 4 种展现形式,如下图:

在产品页面上,开发者可一次性推广多达 20 个 App 内购买项目,并同时为其他通过审核的 App 内购买项目做好推广准备。这样开发者可以灵活地根据业务需求(比如,当开发者打算推出限时促销或提供独家内容的时候)来更换产品页面上展示的 App 内购买项目。

需要注意的是,如果你的产品是需要定期续费的,那需要选择订阅类型;但如果是一次性消费不要再次订阅的,则选择非订阅类型。

此次,我们公司用到的苹果内购产品有两种会员:一种是订阅自动续费的,一种是非订阅产品,不会自动续费的。

2.内购产品上架需与 App 上架的包一起提交

这里需要重点注意一下,内购产品上架的时候一定要和 App 上架的包一起提交审核,不可以分开提交。如果你选择分开提交了,那内购永远不可能上架成功的。亲测过,一定要注意了。

3.App 内购买项目多地区上架,选择本地化适配或可增加过审几率

在 App Store 审核条款中,也指出“如果我们无法理解 App 的工作方式,或者 App 内购买项目不是那么一目了然,则审核会有所延误,并可能会导致 App 被拒绝。”所以,如果你的产品要是在多个地区上架的话,建议开发者要做好 App 内购买项目本地化工作,以免审核被拒。

4.四种声明条款

①用户协议和隐私条款

在 App 登录页面和产品购买页面,一定要有用户协议和隐私条款这两个东西。

②连续包月协议说明和自动续费声明

如果你的产品中有自动订阅产品类型,则需要加入连续包月协议说明。同时,还要在 App 产品页面写上自动续费声明。

5.App 应用描述中加入自动订阅描述

如果还是有些担心 App 内购买项目审核被拒,则可以选择在 App 应用描述当中加入自动订阅的内容描述,让苹果审核人员能够更加直观、清楚的看到 App 内购买项目相关情况。

6.虚拟产品不要加入第三方支付的 SDK

以上内容都准备好了的话,那最后就需要注意一下:如果你的 App 内购买项目是虚拟产品的话,不包括实物,请不要加入支付第三方的 SDK,不然检测出来可能会被拒掉。

Tips:由于 App 内购买项目的产品 ID 具有唯一性,即生成一次后就无法再次生成同一个 ID 的产品,包括删除后也无法使用同一个 ID。因此在选择产品类型,填写产品 ID 时,需要注意避免填错或误删了。

收起阅读 »

unipush 厂商推送配置踩坑指南

unipush

1,如果应用使用的是Dcloud公共证书,
华为厂商sha256签名指纹需使用,
D7:5C:1F:A2:B9:AE:86:7C:E6:88:A8:AD:C6:DE:AC:7C:D6:BA:96:F4:3A:75:1F:D1:0A:20:0F:A5:97:4A:C6:36
(1)华为厂商不需上架应用到其应用平台,如果离线消息无法收到,请把华为移动服务更新至最新版本,并清除华为移动服务的缓存数据
参考帖子如下:DCloud公用证书信息(将过期不要再使用)
(2) Dcloud开发这平台应用配置sha1签名请使用

 

2,如果使用了自定义应用包名,包名尽量全部用小写

3,Dcloud开发平台发送透传消息格式示例:

其中消息内容格式为:{"title":"消息格式示例","content":"消息示例内容","payload":"100"}
intent格式:intent:#Intent;action=android.intent.action.oppopush;component=com.xxx.包名/io.dcloud.PandoraEntry;S.title=消息格式示例;S.content=消息示例内容;S.payload=100;end

4,希望小小分享可以帮到需要的小伙伴们!!!

继续阅读 »

1,如果应用使用的是Dcloud公共证书,
华为厂商sha256签名指纹需使用,
D7:5C:1F:A2:B9:AE:86:7C:E6:88:A8:AD:C6:DE:AC:7C:D6:BA:96:F4:3A:75:1F:D1:0A:20:0F:A5:97:4A:C6:36
(1)华为厂商不需上架应用到其应用平台,如果离线消息无法收到,请把华为移动服务更新至最新版本,并清除华为移动服务的缓存数据
参考帖子如下:DCloud公用证书信息(将过期不要再使用)
(2) Dcloud开发这平台应用配置sha1签名请使用

 

2,如果使用了自定义应用包名,包名尽量全部用小写

3,Dcloud开发平台发送透传消息格式示例:

其中消息内容格式为:{"title":"消息格式示例","content":"消息示例内容","payload":"100"}
intent格式:intent:#Intent;action=android.intent.action.oppopush;component=com.xxx.包名/io.dcloud.PandoraEntry;S.title=消息格式示例;S.content=消息示例内容;S.payload=100;end

4,希望小小分享可以帮到需要的小伙伴们!!!

收起阅读 »

ios 运行失败问题

HBuilder X

ios 运行失败,更新后重启电脑,,,再去运行,为了防止问题,最好把原先基座卸载

ios 运行失败,更新后重启电脑,,,再去运行,为了防止问题,最好把原先基座卸载

安卓集成极光推送

极光推送

第一.集成极光推送,首先要学会离线打包 官方教程 :https://ask.dcloud.net.cn/article/508

离线打包中出现的问题:
1.启动图片不展示问题:
需要把启动图片放入 src/main/res/drawable 文件夹中 名称splash.png

第二.极光推送官方教程: https://github.com/jpush/jpush-hbuilder-demo/tree/master

注意事项:
极光官方缺少一步,需要把jpush.js引入app首页 <script type="text/javascript" src="js/jpush.js"></script>

继续阅读 »

第一.集成极光推送,首先要学会离线打包 官方教程 :https://ask.dcloud.net.cn/article/508

离线打包中出现的问题:
1.启动图片不展示问题:
需要把启动图片放入 src/main/res/drawable 文件夹中 名称splash.png

第二.极光推送官方教程: https://github.com/jpush/jpush-hbuilder-demo/tree/master

注意事项:
极光官方缺少一步,需要把jpush.js引入app首页 <script type="text/javascript" src="js/jpush.js"></script>

收起阅读 »

最近ios企业签价格被炒的破千了~~~wap2app用户来交流下啊~~~

最近找到了一种比较靠谱的免签。利用iphone工具包直接生成Web clip来实现IOS的伪App。效果中规中矩把。这个只适用于wap2app试用 uni跟mui就别想了。有兴趣的加我Q或者私信我交流交流经验!~

最近找到了一种比较靠谱的免签。利用iphone工具包直接生成Web clip来实现IOS的伪App。效果中规中矩把。这个只适用于wap2app试用 uni跟mui就别想了。有兴趣的加我Q或者私信我交流交流经验!~

长期招聘Vue兼职程序员

uniapp模板 uniapp插件 uniapp

要求:
1、工作模式:线上
2、质量要求:根据蓝湖标准,1:1还原;vue单文件不超过500行,超过需组件化
3、源代码:基于vue cli3开发,只需App.vue和main.js,以及依赖的文件。copy到新的vue项目能够正常运行的。
4、时间:根据页面内容决定,一般1~2天
5、单价:移动界面100~500人民币,PC界面300~800人民币

如想加入的,请加微信 zhuzheVIP1 详聊,请备注dcloud

继续阅读 »

要求:
1、工作模式:线上
2、质量要求:根据蓝湖标准,1:1还原;vue单文件不超过500行,超过需组件化
3、源代码:基于vue cli3开发,只需App.vue和main.js,以及依赖的文件。copy到新的vue项目能够正常运行的。
4、时间:根据页面内容决定,一般1~2天
5、单价:移动界面100~500人民币,PC界面300~800人民币

如想加入的,请加微信 zhuzheVIP1 详聊,请备注dcloud

收起阅读 »

windows下上传ipa的方法

大家都知道使用mac电脑,可以使用xcode或者application loader上传ipa文件去app store,但是我们大部分使用hbuilder开发的时候,都是使用windows电脑,而苹果官方却没有windows下上传ipa文件的软件。

那么有没有windows下上传ipa的软件呢?

肯定是有的,而且还不需要安装软件,直接上一个平台就可以上传ipa文件到开发者中心了,这个工具的地址是:

https://www.yunedit.com/ipadetail

登录上去,输入开发者中心的专用密码、选择ipa文件就可以上传ipa了

然后等待上传结果,大概三四分钟后,假如ipa没问题,就会提示上传成功

继续阅读 »

大家都知道使用mac电脑,可以使用xcode或者application loader上传ipa文件去app store,但是我们大部分使用hbuilder开发的时候,都是使用windows电脑,而苹果官方却没有windows下上传ipa文件的软件。

那么有没有windows下上传ipa的软件呢?

肯定是有的,而且还不需要安装软件,直接上一个平台就可以上传ipa文件到开发者中心了,这个工具的地址是:

https://www.yunedit.com/ipadetail

登录上去,输入开发者中心的专用密码、选择ipa文件就可以上传ipa了

然后等待上传结果,大概三四分钟后,假如ipa没问题,就会提示上传成功

收起阅读 »

【2019个推开发者节】四大移动开发SDK全部免费用!

SDK

1024程序员节来了
双11近了
各路满减、折扣、领券、秒杀、集赞
营销玩法猛于虎,一看优惠两毛五

日常拼命赶“需求”
修“Bug”的开发者们
想找个好用又不贵的工具太难了

亲爱的开发者们,不要慌!

<2019个推开发者节>

火热来袭

消息推送、用户画像、应用统计、一键认证

四大SDK,现在全部免费用 !

详情请戳图

双十一促销仅一天,
但我们的产品免费用一年!
还是VIP版本哟!
你还在等什么?

扫描二维码
立即参与活动!

继续阅读 »

1024程序员节来了
双11近了
各路满减、折扣、领券、秒杀、集赞
营销玩法猛于虎,一看优惠两毛五

日常拼命赶“需求”
修“Bug”的开发者们
想找个好用又不贵的工具太难了

亲爱的开发者们,不要慌!

<2019个推开发者节>

火热来袭

消息推送、用户画像、应用统计、一键认证

四大SDK,现在全部免费用 !

详情请戳图

双十一促销仅一天,
但我们的产品免费用一年!
还是VIP版本哟!
你还在等什么?

扫描二维码
立即参与活动!

收起阅读 »

Mui内部浏览器

内置浏览器

什么是内部浏览器呢?小编在这里说一下,在mui中打开外部链接,就是内部浏览器,为什么要用内部浏览器呢?比如说在mui项目中定义个a标签跳转网址的时候,跳转后再点击返回,这时mui所做的APP就会出现闪退的情况,这时就可以用到这个内部浏览器了。

注意:此方法仅用于在APP上,不能用于浏览器上 。

内部浏览器他需要重新做一个目标文件(target.html)。

<!doctype html>  
<html>  
<head>  
<meta charset="UTF-8">  
<title>目标页面</title>  
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />  
<link href="css/mui.min.css" rel="stylesheet" />  
</head>  
<body>  
<header class="mui-bar mui-bar-nav">  
    <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left" id="go_back">返回</a>  
    <a class="mui-icon mui-icon-forward mui-pull-right" id="go_forward"></a>  
    <h1 class="mui-title mui-action-back" id="close_page">直接关闭当前页面</h1>  
</header>  
<script src="js/mui.min.js"></script>  
<script type="text/javascript">  
    var str=window.location.search;  
    var myid=str.substring(str.indexOf('=')+1)  
    mui.init();  
    mui.plusReady(function() {  
        var self = plus.webview.currentWebview();  
        var baiduWV = plus.webview.create(myid, "baidu", {  
            top: "44px",  
            bottom: 0  
        });  
        self.append(baiduWV);  
    });  
</script>  
</body>  
</html>

目标页创建写好好以后就在需要点击的页面加一个点击事件。
//内部浏览器 放在外页加点击事件

$(".gshdfd").click(function(){  
    mui.openWindow({  
        url: "target.html?url=" + "http://dt2008.cn",  
        id: "target"  
    });  
});

小编这个是用jQuery做了一个点击事件,也可以用mui框架做点击事件,看个人习惯。

别忘记引入mui自带的css和js喔!!!

此文章原创于:http://dt2008.cn/index.php/2019/10/22/p17

继续阅读 »

什么是内部浏览器呢?小编在这里说一下,在mui中打开外部链接,就是内部浏览器,为什么要用内部浏览器呢?比如说在mui项目中定义个a标签跳转网址的时候,跳转后再点击返回,这时mui所做的APP就会出现闪退的情况,这时就可以用到这个内部浏览器了。

注意:此方法仅用于在APP上,不能用于浏览器上 。

内部浏览器他需要重新做一个目标文件(target.html)。

<!doctype html>  
<html>  
<head>  
<meta charset="UTF-8">  
<title>目标页面</title>  
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />  
<link href="css/mui.min.css" rel="stylesheet" />  
</head>  
<body>  
<header class="mui-bar mui-bar-nav">  
    <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left" id="go_back">返回</a>  
    <a class="mui-icon mui-icon-forward mui-pull-right" id="go_forward"></a>  
    <h1 class="mui-title mui-action-back" id="close_page">直接关闭当前页面</h1>  
</header>  
<script src="js/mui.min.js"></script>  
<script type="text/javascript">  
    var str=window.location.search;  
    var myid=str.substring(str.indexOf('=')+1)  
    mui.init();  
    mui.plusReady(function() {  
        var self = plus.webview.currentWebview();  
        var baiduWV = plus.webview.create(myid, "baidu", {  
            top: "44px",  
            bottom: 0  
        });  
        self.append(baiduWV);  
    });  
</script>  
</body>  
</html>

目标页创建写好好以后就在需要点击的页面加一个点击事件。
//内部浏览器 放在外页加点击事件

$(".gshdfd").click(function(){  
    mui.openWindow({  
        url: "target.html?url=" + "http://dt2008.cn",  
        id: "target"  
    });  
});

小编这个是用jQuery做了一个点击事件,也可以用mui框架做点击事件,看个人习惯。

别忘记引入mui自带的css和js喔!!!

此文章原创于:http://dt2008.cn/index.php/2019/10/22/p17

收起阅读 »

【请谨慎使用】h5打包之后,不支持本地file协议打开

uniapp

以下介绍的方式 请谨慎使用 现在是可以用,以后是不一定,风险是会有的。

1、路由模式选择 hash

2、开始打包

3、打包之后的文件夹 ,找到 /static/js/index.****.js

4、搜索 base:"/" 修改成 base:"./"

5、重要的事情说几遍,未得官方认可,风险是会有的

继续阅读 »

以下介绍的方式 请谨慎使用 现在是可以用,以后是不一定,风险是会有的。

1、路由模式选择 hash

2、开始打包

3、打包之后的文件夹 ,找到 /static/js/index.****.js

4、搜索 base:"/" 修改成 base:"./"

5、重要的事情说几遍,未得官方认可,风险是会有的

收起阅读 »