uniapp接入openinstall配置
1、h5页面调用方法
<html lang="en"><head><meta charset="UTF-8"><meta name="format-detection" content="telephone=no,email=no,date=no,address=no"><meta name="apple-mobile-web-app-status-bar-style" content="black"><meta name="apple-mobile-web-app-capable" content="yes" /><!-- home screen app 全屏 --><meta name="apple-mobile-web-app-status-bar-style" content="black" /><!-- 状态栏 --><meta http-equiv="Access-Control-Allow-Origin" content="*"><meta name="keywords" content="红叉"><link rel="icon" href="#" type="image/x-icon"/><script type="text/javascript" charset="UTF-8" src="https://web.cdn.openinstall.io/openinstall.js"></script><title>红叉App</title><script>//移动端rem适配;(function(win, lib) {var doc = win.document;var docEl = doc.documentElement;var metaEl = doc.querySelector('meta[name="viewport"]');var flexibleEl = doc.querySelector('meta[name="flexible"]');var dpr = 0;var scale = 0;var tid;var flexible = lib.flexible || (lib.flexible = {});if (metaEl) {console.warn('将根据已有的meta标签来设置缩放比例');var match = metaEl.getAttribute('content').match(/initial\-scale=([\d\.]+)/);if (match) {scale = parseFloat(match[1]);dpr = parseInt(1 / scale);}} else if (flexibleEl) {var content = flexibleEl.getAttribute('content');if (content) {var initialDpr = content.match(/initial\-dpr=([\d\.]+)/);var maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/);if (initialDpr) {dpr = parseFloat(initialDpr[1]);scale = parseFloat((1 / dpr).toFixed(2));}if (maximumDpr) {dpr = parseFloat(maximumDpr[1]);scale = parseFloat((1 / dpr).toFixed(2));}}}if (!dpr && !scale) {var isAndroid = win.navigator.appVersion.match(/android/gi);var isIPhone = win.navigator.appVersion.match(/iphone/gi);var devicePixelRatio = win.devicePixelRatio;if (isIPhone) {// iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {dpr = 3;} else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)){dpr = 2;} else {dpr = 1;}} else {// 其他设备下,仍旧使用1倍的方案dpr = 1;}scale = 1 / dpr;}docEl.setAttribute('data-dpr', dpr);if (!metaEl) {metaEl = doc.createElement('meta');metaEl.setAttribute('name', 'viewport');metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');if (docEl.firstElementChild) {docEl.firstElementChild.appendChild(metaEl);} else {var wrap = doc.createElement('div');wrap.appendChild(metaEl);doc.write(wrap.innerHTML);}}function refreshRem(){var width = docEl.getBoundingClientRect().width;if (width / dpr > 540) {width = 540 * dpr;}var rem = width / 10;docEl.style.fontSize = rem + 'px';flexible.rem = win.rem = rem;}win.addEventListener('resize', function() {clearTimeout(tid);tid = setTimeout(refreshRem, 300);}, false);win.addEventListener('pageshow', function(e) {if (e.persisted) {clearTimeout(tid);tid = setTimeout(refreshRem, 300);}}, false);if (doc.readyState === 'complete') {doc.body.style.fontSize = 12 * dpr + 'px';} else {doc.addEventListener('DOMContentLoaded', function(e) {doc.body.style.fontSize = 12 * dpr + 'px';}, false);}refreshRem();flexible.dpr = win.dpr = dpr;flexible.refreshRem = refreshRem;flexible.rem2px = function(d) {var val = parseFloat(d) * this.rem;if (typeof d === 'string' && d.match(/rem$/)) {val += 'px';}return val;}flexible.px2rem = function(d) {var val = parseFloat(d) / this.rem;if (typeof d === 'string' && d.match(/px$/)) {val += 'rem';}return val;}})(window, window['lib'] || (window['lib'] = {}));</script><script>var data = OpenInstall.parseUrlParams();///openinstall.js中提供的工具函数,解析url中的所有查询参数new OpenInstall({/*appKey必选参数,openinstall平台为每个应用分配的ID*/appKey : "t7heo9",/*OpenInstall初始化完成的回调函数,可选*/onready : function() {var vm = this;document.getElementById("download").onclick = function (){vm.schemeWakeup(); //唤起appvm.wakeupOrInstall(); //下载appopeninstall.getInstall( //待确定h5页面要不要加(获取所传参数方法)8,function(result) {console.log('getInstall : channel=' + result.channelCode + ', data=' + result.bindData);});};}}, data);// 初始化方法window.onload = function(){var dom = document.getElementById("xpopup");var page = document.getElementById("body");var ua = window.navigator.userAgent.toLowerCase();if(ua.match(/MicroMessenger/i) == 'micromessenger'){dom.style.display="black";page.style.overflow="hidden";return true; //是微信}else{dom.style.display="none";return false; //不是微信}}//解决ios下 双击放大问题!var lastTouchEnd = 0;document.documentElement.addEventListener('touchend', function (event) {var now = Date.now();if (now - lastTouchEnd <= 300) {event.preventDefault();}lastTouchEnd = now;}, false);</script></head><body id='body' style="overflow-x:hidden"><div id="hc"><!-- 微信浏览器弹窗 --><div class="images ximg" id="xpopup"><img class="w80" src="https://sizex-app.oss-accelerate.aliyuncs.com/92066ce78abb4d0ab9a5f29a78c005ab/base/landing-popup.png"></div><!-- 顶部标题 --><div class="image" id="download" ><img src="https://sizex-app.oss-accelerate.aliyuncs.com/92066ce78abb4d0ab9a5f29a78c005ab/base/landing-header.png"></div><!-- 下载app领福利 --><div class="image" id="downloadBtn" ><img src="https://sizex-app.oss-accelerate.aliyuncs.com/92066ce78abb4d0ab9a5f29a78c005ab/base/landing-content.png"></div><!-- 商品列表 --><div class="image" id="downloadButton" ><img src="https://sizex-app.oss-accelerate.aliyuncs.com/92066ce78abb4d0ab9a5f29a78c005ab/base/landing-product.png"></div><!-- 底部小程序二维码 --><div class="image"><img src="https://sizex-app.oss-accelerate.aliyuncs.com/92066ce78abb4d0ab9a5f29a78c005ab/base/landing-bottom.png"></div></div></body><style>* {padding: 0;margin: 0;}.image{width: 100%;}.images{height: 100%;position: absolute;width: 100%;z-index: 10;top: 0px;background-color: rgba(0,0,0,0.7);}.image img{width: 100%;}.w80{position: absolute;width: 80%;top:30px;right: 30px;z-index: 10;}.ximg{position: absolute;width: 100%;z-index: 10;top: 0px;}</style></html>
app.vue
onLaunch: async (options)=>{// #ifdef APP-PLUS//openinstall插件安装绑粉功能实现const openinstall = uni.requireNativePlugin('openinstall-plugin');await openinstall.init();await openinstall.getInstall(8, //获取安装绑定用户数据async (result)=>{if(result.bindData){let xdata = JSON.parse(result.bindData);await uni.setStorageSync('shareId',xdata.uuid);}});APPUpdate(); //判断app是否需要升级// #endif// #ifdef MP-WEIXINthis.autoUpdate();//#endif},
