首页 > 其他分享 >uniapp开发并调试钉钉H5微应用

uniapp开发并调试钉钉H5微应用

时间:2023-02-04 14:55:37浏览次数:55  
标签:uniapp dingtalk dd H5 https js open 调试 页面

首先要在钉钉开放平台上创建出一个企业内部应用 , 然后配置这个应用的地址 , ip之类 写在前面 : 开发时要调试钉钉H5页面 , 我用到了两种办法   1.直接在服务器上改   2.穿透 这篇分享是在我使用了穿透的基础上写的 钉钉文档中推荐了一款穿透工具https://open.dingtalk.com/document/resourcedownload/alibaba-cloud-frp-intranet-penetration-tool   1.配置钉钉微应用 https://open.dingtalk.com/ 钉钉开放平台 钉钉开放平台->登录->右上角我的后台->顶部应用开发->企业内部开发 先创建企业内部应用 , 选择H5微应用  

 

创建完了会进到应用信息页面 , 点开发管理

 

 

 

在开发管理之下的权限管理页面勾选所需权限 比如你需要后台免登录 , 就需要勾选"身份验证"里的"企业微应用后台免登接口的访问权限"     2.uniapp中 在目录中创建template.h5.html文件(与App.vue平级)
<!-- template.h5.html -->
<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <script>
            var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
                CSS.supports('top: constant(a)'))
            document.write(
                '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
                (coverSupport ? ', viewport-fit=cover' : '') + '" />')
        </script>

        //生成专属调试工具的代码
        <!-- <script src="https://g.alicdn.com/code/npm/@ali/dingtalk-h5-remote-debug-sdk/0.1.3/app.bundle.js"></script>
        <script>
            h5RemoteDebugSdk.init({
                uuid: "888888-8888-88dd-8888-8888888",
                observerElement: document.documentElement,
            });
        </script> -->


        <title>
            <%= htmlWebpackPlugin.options.title %>
        </title>
        <script>
        </script>
        <link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
    </head>
    <body>
        <noscript>
            <strong>Please enable JavaScript to continue.</strong>
        </noscript>
        <div id="app"></div>
        <script>
        </script>
    </body>
</html>

 

  在manifest.json中选择Web配置 , 在模板路径中填写 关于template.h5.html:https://uniapp.dcloud.net.cn/collocation/manifest.html#h5-template

 


 

在钉钉开放平台的开发管理(页面最下方)点击生成专属调试工具   手机钉钉的工作台中打开H5应用 , 就可以在浏览器中调试 ( 别忘记穿透出来 )   3.dingtalk-jsapi 用uniapp开发钉钉H5微应用时发现一个坑——切换页面时标题不会变 , 除非刷新该页面 所以每个页面onLoad()里都调用dingtalk-jsapi的biz.navigation.setTitle方法设置导航栏标题 那就顺便讲下钉钉js , 封装和调用  
npm install dingtalk-jsapi --save   //安装

 

在common文件夹中创建dd.js ( 没有common就新建一个 , 和template.h5.html平级 ) 如下方所示 , 我封装了三个方法 , 免密登录修 、改标题和扫码
// dd.js
import * as dd from 'dingtalk-jsapi'

//免密登录

export function getCode(callback) {
    let corpId =  'dinga888888888888888888888' //企业ID 见下图
    if (dd.env.platform !== 'notInDingTalk') {
        dd.ready(() => {
            //使用SDK 获取免登授权码
            dd.runtime.permission.requestAuthCode({
                corpId: corpId,
                onSuccess: info => {
                    // 根据钉钉提供的api 获得code后,再次调用这个callback方法
                    // 由于是钉钉获取code是异步操作,不知道什么时候执行完毕
                    // callback 函数会等他执行完毕后在自己调用自己
                    callback(info.code)
                },
                onFail: err => {
                    alert('fail')
                    alert(JSON.stringify(err))
                }
            })
        })
    }
}

// 修改标题
export function setTitle(e) {
    dd.ready(() => {
        // 所有JSAPI组件的调用,必须在dd.ready里面执行。
        dd.biz.navigation.setTitle({
            title: e
        });
    });
}
// 扫码
export function scan(callBack) {
    dd.ready(() => {
        dd.biz.util.scan({
            type: "all",
            onSuccess: info => {
                // 调用成功时回调
                callBack(info.text)
            },
            onFail: function(err) {
                // 调用失败时回调
                console.log(err)
            }
        });
    });
}

 

corpId在钉钉开放平台右上角点击头像出现  

 

在main.js中注册 ( 要写在import Vue from 'vue'以下 )
import * as dd from './common/dd.js'
Vue.prototype.$ddFunction = dd

 

在页面中调用
that.$ddFunction.setTitle('页面名称');

 

 

 

一些链接:
钉钉JSAPI https://open.dingtalk.com/document/isvapp/read-before-development
调试钉钉js前端API  https://open-dev.dingtalk.com/apiExplorer?spm=ding_open_doc.document.0.0.3e15722fk9Qkpb#/jsapi?api=device.notification.extendModal
免登流程  https://open.dingtalk.com/document/isvapp/logon-free-process

标签:uniapp,dingtalk,dd,H5,https,js,open,调试,页面
From: https://www.cnblogs.com/czq091449/p/17091475.html

相关文章

  • 【随笔记】T507 ADC SGM58031 16BIT 4Channel 调试记录
    文章介绍本文主要描述在T507Android10Linux4.9平台下,调试SGM58031芯片的记录,实现单芯片实时采集外部四通道的电压数值。芯片介绍SGM58031是一款低功耗、16位......
  • 65Android 调试桥 (adb)命令
    Android调试桥(adb)网络连接通过TCP/IP连接设备adbconnect<ip:port>断开已有的TCP/IP连接adbdisconnect<ip:port>监听设备上指定的端口号adbtcpip<port>......
  • uniapp在微信小程序中图片宽度显示问题
    在uniapp中,如果你的富文本图片显示宽度不正常,你可以通过设置图片的宽高属性来解决这个问题。例如,你可以在富文本中添加以下代码来设置图片的宽度为100%:<imgsrc="your_ima......
  • uniapp时间格式化处理
    应用需求分析:前台页面有时需要展示YYYY-MM-DD格式,但后台却返回给我们YYYY-MM-DDhh:mm:ss、或者是一串字符//格式化处理方式一:dateFormat(time){......
  • VS2022使用WSL调试程序时卡在下载vsdebugger-已解决
    注:如果是安装一半以为卡了把控制台关了。后来使用WSL启动一直提示报错,但也不能像初次启动那样出现安装VisualStudio调试器的提示下述方法也能解决,缘由是删了子系统重装发......
  • 打印调试信息
    qDebug()打印调试信息,控制台应用程序将打印到控制台。 对于最后两行,全部选中按下ctrl+F进行对[]替换为()。 输出显示:  tips:如果跟在qDebug().noquote()<......
  • uniapp不介入第三方,Android调用各种权限
    代码:onLaunch:function(){console.log('onLaunch')//监听底部中间菜单的事件uni.onTabBarMidButtonTap(()=>{......
  • Linux系统中GDB调试详细操作方法
    第一:启动在shell下敲gdb命令即可启动gdb,启动后会显示下述信息,出现gdb提示符。添加编译指令:gcc-ga.c-otest打开指令:gdbtest  或者gdb  然后输入:filetest➜exa......
  • 创维电视如何开启adb调试功能以安装APP
     创维电视如何开启adb调试功能以安装APP,创维电视找不到adb开关                                 ......
  • Logstash grok正则调试
    1.为Logstash添加一个配置文件dnsquery.conf,如下input{kafka{add_field=>{"es_index_name"=>"dns-query"}bootstrap_servers=>"10.0.8.1:9092"......