当前位置: 首页 > wzjs >正文

小程序定制开发流程深圳网站seo地址

小程序定制开发流程,深圳网站seo地址,秒玩大型游戏的网站,凡科网一、企业内部应用检测和更新升级 A应用检测是否安装B应用 canOpenApp():boolean{ try { let link schB://com.example.test/open; // 替换成你目标应用的link串儿 let canOpen bundleManager.canOpenLink(link); console.log("canOpen:"canOpen…

一、企业内部应用检测和更新升级 

        A应用检测是否安装B应用

canOpenApp():boolean{    try {      let link = 'schB://com.example.test/open'; // 替换成你目标应用的link串儿      let canOpen = bundleManager.canOpenLink(link);      console.log("canOpen:"+canOpen)      this.openDeepLink(link)      return canOpen;    } catch (err) {      let message = (err as BusinessError).message;      console.log('testTag', 'canOpenLink failed: %{public}s', message);    }    return false;  }

       link的构成

       为了便于应用A判断设备上是否有安装应用B,从而决定是否引导用户去下载应用B,需要应用A、B做如下配置:

      应用B配置,在entry模块的 module.json5文件中添加配置具体标签路径如下:module-> abilities -> skills-> 添加 uris

{   "abilities": [     {       "skills": [         {           "actions": [             "ohos.want.action.home",             "ohos.want.action.viewData"           ],           "entities": [             "entity.system.home"           ],           "uris": [             {               "scheme":"schB",               "host":"com.example.test",               "path":"open",             }           ],         }       ]     }   ] }

   应用A配置,在entry模块的module.json5文件中添加配置具体标签路径如下:module-> querySchemes

"querySchemes": [ "schB"]

打开某个应用

this.openDeeplink("schB://com.example.test/open")   /**   * 打开或者下载安装应用   * @param deeplink   */  private openDeepLink(deeplink: string): void {   let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;    context.openLink(deeplink).then(() => {      console.info('openlink success.')    }).catch((error: BusinessError) => {      console.error('openlink failed.')    });  }

应用升级

deeplink的构成结构(具体解释见第二章节《二、企业内部商店如何实现》):

let deeplink: string = "store://enterprise/manifest?url=https://xxx/xxx.json5";
/**   * 打开或者下载安装应用   * @param deeplink   */  private openDeepLink(deeplink: string): void {   let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;    context.openLink(deeplink).then(() => {      console.info('openlink success.')    }).catch((error: BusinessError) => {      console.error('openlink failed.')    });  }

二、企业内部商店如何实现 

 对于不适合或不希望在华为应用市场上公开发布的、面向企业内部或特定人群的HarmonyOS应用的分发,必须使用专用的组织内部发布证书和组织内部发布Profile来编译打包HarmonyOS应用,然后将应用包及应用描述文件上传到您的服务器或第三方云上,用户按指定方式直接下载安装即可。

上传应用包至服务器

将编译得到的各个HAP/HSP包上传至您的服务器或第三方云上,获取HAP/HSP包下载URL,下载URL必须以“https”开头。

生成应用描述文件并上传至服务器

  1. 基于应用信息生成应用描述文件(如“manifest.json5”,文件名可自定义),代码如下:

    {  "app": {    "bundleName": "com.example.demo.a",    "bundleType": "app",    "versionCode": 1000000,    "versionName": "1.0.0",    "label": "DemoA",    "deployDomain": "应用、图标以及描述文件部署域名",    "icons": {      "normal": "标准图标下载链接",      "large": "大图标下载链接"    },    "minAPIVersion": "4.1.0(11)",    "targetAPIVersion": "4.1.0(11)",    "modules": [      {        "name": "module1",        "type": "entry",        "deviceTypes": [          "tablet",          "phone"        ],        "packageUrl": "hap包下载链接",        "packageHash": "hap包sha256值"      },      {        "name": "module2",        "type": "feature",        "deviceTypes": [          "tablet",          "phone"        ],        "packageUrl": "hap包下载链接",        "packageHash": "hap包sha256值"      }    ]  }}
  1. 需传入的应用信息如下表所示。

    属性

    数据类型

    必选(M)/可选(O)

    说明

    bundleName

    字符串

    M

    应用的Bundle名称。

    bundleType

    字符串

    M

    应用的Bundle类型,用于区分HarmonyOS应用或元服务。

    当前仅支持配置为“app”,表示HarmonyOS应用。

    versionCode

    数值

    M

    应用的版本号。

    versionName

    字符串

    M

    应用版本号的文字描述。

    label

    字符串

    M

    应用的名称,建议与实际应用名称一致,否则会出现下载与安装过程中应用名不一致的问题。

    deployDomain

    字符串

    M

    应用、图标及描述文件的部署域名,需要与icons、packageUrl以及描述文件自身下载URL中的域名一致,否则会导致下载失败。

    icons

    字符串

    M

    应用的图标,提供企业内部部署的图片下载地址,必须以“https”开头。

    minAPIVersion

    字符串

    M

    应用运行所需SDK的API最小版本,用于判断是否与当前设备兼容。

    targetAPIVersion

    字符串

    M

    应用运行所需的API目标版本,用于判断是否与当前设备兼容。

    modules

    列表

    M

    应用分包module信息列表,以数组形态组织,其中至少包括一个entry module信息。

    name

    字符串

    M

    module的名称,该名称在整个应用须唯一。

    type

    字符串

    M

    应用module的类型,取值范围:

    deviceTypes

    字符串

    M

    当前module可以运行在哪类设备上,目前仅支持phone(手机)和tablet(平板)。

    packageUrl

    字符串

    M

    当前module上传至服务器后生成的下载URL,必须以“https”开头。

    packageHash

    字符串

    M

    当前module的SHA256值。例如,可通过certutil -hashfile 包路径 SHA256命令获取。

    说明

    “包路径”指应用HAP/HSP包在本地的存储路径。

  • entry:应用的主模块

  • feature:应用的动态特性模块

  • shared:动态共享包模块(仅支持应用内共享包)

将应用描述文件上传至您的服务器或第三方云上,获取该描述文件的下载URL。

构造DeepLink拉起应用下载安装

获取应用描述文件的下载URL后,您便可使用该URL构造DeepLink来拉起应用下载安装。DeepLink需满足如下条件:

  • 仅支持页面点击行为触发拉起,不支持地址栏输入DeepLink拉起或HTML头文件自动拉起。

  • 仅支持华为浏览器拉起,且从华为浏览器拉起的所有行为,均需判断是否有用户点击行为,确认用户点击才允许拉起。

  • DeepLink格式:store://enterprise/manifest?url=https://xxx.xxx/xxx.json5

    Schema

    store://

    Host

    enterprise

    Path

    manifest

    参数

    描述文件上传至服务器后生成的下载URL,必须以“https”开头。

    示例:url=https://xxx.xxx/xxx.json5

    说明

    如描述文件下载URL内包含特殊字符,还需进行特殊字符编码:declare function encodeURIComponent(uriComponent: string | number | boolean): string;

同时,服务器配置需满足如下条件,请特别关注:

  • 您需要配置服务器支持分片下载能力。建议您在配置后进行验证:构造下载请求头包含range字段,返回码为206(如下方示例图),表示服务器支持分片下载;反之则不支持。

    2814e29efec8b652dad1d193cc5291fc.png

  • 您需要配置服务器返回的响应头(如下方示例图),使得应用描述文件和应用包可正确传输下载。

    2021ad9191ed4fc7700b3ad9ca2d076a.png

例如,用户在应用分发页面点击“下载”按钮后,华为浏览器将解析您构造的DeepLink,触发应用的下载安装流程。

<html lang="en">  <head>    <meta charset="UTF-8">    <title>Button Open DeepLink Example</title>    <script>      function openDeepLink() {        let url ='store://enterprise/manifest?url=https://xxx.xxx/xxx.json5'        window.open(url, '_parent')      }    </script>  </head>  <body>    <button onclick="openDeepLink()">下载</button>  </body></html>

更新场景下,可以使用openlink方式直接拉起下载安装:

private openDeepLink(deeplink: string): void {// deeplink格式具体见开发者文档let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;context.openLink(deeplink).then(() => {console.info('openlink success.')}).catch((error: BusinessError) => {console.error('openlink failed.')});}

2e1fcc2e1b1922f92ef9610ea98702e8.png

如果应用已安装成功,但被阻止运行,请在“设置 > 系统 > 企业设备和应用管理 > 企业应用管理”中找到您的企业内部应用,点击“允许”。

说明

系统软件版本(3.0.0.22)的路径为 “设置 > 通用 > 企业设备和应用管理”。

3fb89b7a8401793738c924b5f7465184.gif

关注我获取更多知识或者投稿

96bb6f19aed6a0b44cc891a1f4ce588b.jpeg

41e1a90c6e27b528ce616a93b6ece14f.jpeg


文章转载自:

http://nqBFDr5R.jcxqc.cn
http://flmXROnI.jcxqc.cn
http://tk5dADUY.jcxqc.cn
http://15qpFmcZ.jcxqc.cn
http://kxtNfBoc.jcxqc.cn
http://19eYSJeG.jcxqc.cn
http://OOyhROB0.jcxqc.cn
http://Fi2MFj5a.jcxqc.cn
http://A61haP8m.jcxqc.cn
http://2kCqrAzp.jcxqc.cn
http://Ar1yfGY0.jcxqc.cn
http://RUHBeh89.jcxqc.cn
http://ZWDDthPw.jcxqc.cn
http://sgXy4NPc.jcxqc.cn
http://wRCFxl7t.jcxqc.cn
http://8vUe7oCM.jcxqc.cn
http://W2ofUHoG.jcxqc.cn
http://pAVHAVRI.jcxqc.cn
http://a87i2rX0.jcxqc.cn
http://jILylwzA.jcxqc.cn
http://smIY9dU8.jcxqc.cn
http://BxmJ4Gho.jcxqc.cn
http://YclRTZLF.jcxqc.cn
http://RccVzqil.jcxqc.cn
http://wVY8V6dl.jcxqc.cn
http://WUD8bWzr.jcxqc.cn
http://rdTZpmRV.jcxqc.cn
http://lKqM4hRa.jcxqc.cn
http://8g9aHdat.jcxqc.cn
http://RiN9cW4J.jcxqc.cn
http://www.dtcms.com/wzjs/755032.html

相关文章:

  • 网站移动端的设计思想网站建设概述
  • 石家庄市网站建设培训班wordpress 短信插件
  • 建网站找哪个平台好呢温州做网站建设
  • 政务网站建设的三个核心功能是什么房屋装修效果图大全
  • 淘宝网站开发方式百度seo是啥
  • 巩义网站推广怎么做网站诊断seo当前数据是指
  • 开一个网站需要多少钱春雨app直播免费看
  • 网站建设收费揭阳专业网站建设
  • 贵州建站管理系统网络营销方式优势
  • 成都网站设计 冠辰花钱人做的网站做好后算谁的
  • 贵州省贵州省建设厅网站网站空间在哪买
  • 咖啡网站建设深圳家具网站建设
  • 中国建设银行网站密码帝国 网站搬家
  • 金华规划局网站开发区蒙牛企业网站建设规划书
  • 泉州制作网站公司wordpress 付费功能
  • 建站能赚钱吗WordPress音乐悬浮插件
  • 正规品牌网站设计有没有专门做衣服搭配的网站
  • 惠州网站建设英语房屋设计软件有哪些
  • 重庆金建站天眼查企业查询下载
  • 免费网站模板库视频背景做网站背景
  • 网站音乐播放器插件网络营销的五个发展阶段
  • 建设网站女装名字大全深圳龙华区是哪个区
  • 山东济南网站推广新媒体销售好做吗
  • 自己怎么开发网站谷歌浏览器下载官方正版
  • 做一套网站多钱徐州seo代理计费
  • 最牛的视频网站建设毕业设计题目
  • 确定网站主题快速搭建网站推荐
  • 网站开发必须要用js编制综合网站平台的公司排名
  • 门户网站系统架构网站开发合同受托方
  • 湘潭新思维网站淘宝关键词排名查询网站