123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <meta name="viewport" content="user-scalable=no" />
- <meta name="viewport"
- content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0,viewport-fit=cover" />
- <script src="//cdn-novel.iycdm.com/static/jquery-3.4.1.min.js" type="text/javascript"></script>
- <script type="text/javascript" src="//statres.quickapp.cn/quickapp/js/routerinline.min.js"></script>
- </head>
- <body>
- <style>
- html,
- body,
- p,
- div,
- section {
- margin: 0;
- padding: 0;
- }
- img {
- width: 100%;
- -webkit-tap-highlight-color: transparent;
- }
- a {
- color: currentColor;
- -webkit-tap-highlight-color: transparent;
- }
- .application-content {
- padding: 12px;
- max-width: 100%;
- transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
- }
- .application-content .content-wrap {
- width: 100%;
- margin-right: auto;
- margin-left: auto;
- }
- .content-card {
- border-radius: 5px;
- max-width: 100%;
- outline: none;
- text-decoration: none;
- transition-property: box-shadow, opacity;
- box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2),
- 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
- padding: 16px;
- font-size: 14px;
- line-height: 20px;
- }
- .card-text {
- text-align: center;
- }
- .card-text .wechat-title {
- color: red;
- font-weight: 700;
- margin-bottom: 16px;
- font-size: 18px;
- }
- .card-text .wechat-name {
- color: teal;
- font-weight: 700;
- font-size: 24px;
- line-height: 40px;
- margin-bottom: 16px;
- }
- .card-text .wechat-step {
- color: #000;
- font-weight: 900;
- font-size: 18px;
- line-height: 24px;
- margin-bottom: 16px;
- }
- .card-text .copy-text {
- height: 28px;
- min-width: 50px;
- padding: 0 12px;
- color: #009688;
- caret-color: #009688;
- border: 1px solid #009688;
- background-color: #fff;
- border-radius: 5px;
- font-size: 20px;
- margin: 0 auto 16px;
- display: block;
- }
- .card-text .copy-button {
- height: 36px;
- min-width: 64px;
- padding: 0 16px;
- background-color: #ff5252;
- border-radius: 5px;
- border: 1px solid #ff5252;
- color: #fff;
- font-size: 20px;
- line-height: 36px;
- display: block;
- margin: 0 auto 16px;
- box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2),
- 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
- }
- .toast-wrap {
- position: fixed;
- top: 50%;
- left: 50%;
- -webkit-transform: translate(-50%, -50%);
- transform: translate(-50%, -50%);
- padding: 5px 10px;
- color: #fff;
- font-size: 14px;
- text-align: center;
- background: rgba(0, 0, 0, 0.8);
- border-radius: 4px;
- }
- .hw-guide {
- width: 100%;
- height: 100%;
- position: absolute;
- top: 0;
- left: 0;
- display: none;
- }
- .hw-guide img {
- width: 100%;
- }
- .hw-guide .btn-know {
- width: 180px;
- height: 40px;
- line-height: 40px;
- text-align: center;
- border: none;
- outline: none;
- background: linear-gradient(0deg,
- rgba(255, 210, 0, 1),
- rgba(255, 239, 75, 1));
- border-radius: 10px;
- text-align: center;
- font-size: 14px;
- font-family: PingFang-SC-Bold;
- font-weight: bold;
- color: rgba(255, 93, 123, 1);
- position: absolute;
- top: 62%;
- left: 50%;
- margin-left: -90px;
- }
- .open-gif {
- position: absolute;
- background: rgba(0, 0, 0, 0.5);
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- }
- .open-gif .open-conetent {
- width: 53vw;
- position: absolute;
- height: 0;
- top: 0;
- bottom: 0;
- left: 0;
- right: 0;
- margin: auto;
- background-color: #f7f5eb;
- border-radius: 10px;
- overflow: hidden;
- text-align: center;
- }
- .open-gif .open-conetent img {
- width: 36%;
- display: inline-block;
- margin-top: 12%;
- }
- .open-gif .open-conetent p {
- margin-top: 8%;
- font-size: 14px;
- }
- .error-tips{
- text-align: center;
- margin-top: 40%;
- }
- .error-tips img{
- width:48%;
- maegin-top:30%;
- }
- .error-button{
- width: 200px;
- height: 40px;
- background:rgba(239,89,82,1);
- border-radius:20px;
- color:#fff;
- font-weight: bold;
- font-size: 16px;
- line-height: 40px;
- text-align: center;
- margin-top: 14%;
- margin-left: auto;
- margin-right: auto;
- }
- .wx-button {
- width: 200px;
- height: 40px;
- background:rgba(239,89,82,1);
- border-radius:20px;
- color:#fff;
- font-weight: bold;
- font-size: 16px;
- line-height: 40px;
- text-align: center;
- margin-top: 14%;
- margin-left: auto;
- margin-right: auto;
- }
- </style>
- <div class="application-wrap">
- <main class="application-content">
- <p id="wechat-gzhname" style="opacity:0;width:0;height:0;">yuzhuwz</p>
- <div class="content-wrap" style="display: none;">
- <div class="error-tips"><img src="https://cdn-novel.iycdm.com/quickapp/static/net-error.jpg" /></div>
- <div class="error-button" onclick="location.reload();">点我继续阅读</div>
- @if ($show_gzh==1)
- <div class="wx-button clip" data-clipboard-action="copy" data-clipboard-target="#wechat-gzhname" >点击复制公众号继续阅读</div>
- @endif
- </div>
- </main>
- <div class="hw-guide">
- <img src="https://cdn-novel.iycdm.com/quickapp/static/guide.jpg " />
- <div class="btn-know">知道了</div>
- </div>
- <div class="open-gif">
- <div class="open-conetent">
- <img src="https://cdn-novel.iycdm.com/quickapp/static/gidf.gif" />
- <p>正在打开快应用...</p>
- </div>
- </div>
- </div>
- <script type="text/javascript">
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return function(n){var o={};function r(t){if(o[t])return o[t].exports;var e=o[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,r),e.l=!0,e.exports}return r.m=n,r.c=o,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=0)}([function(t,e,n){"use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}}(),a=o(n(1)),c=o(n(3)),u=o(n(4));function o(t){return t&&t.__esModule?t:{default:t}}var l=function(t){function o(t,e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,o);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,(o.__proto__||Object.getPrototypeOf(o)).call(this));return n.resolveOptions(e),n.listenClick(t),n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(o,c.default),i(o,[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===r(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,u.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new a.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return s("action",t)}},{key:"defaultTarget",value:function(t){var e=s("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return s("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),o}();function s(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}t.exports=l},function(t,e,n){"use strict";var o,r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function o(t,e){for(var n=0;n<e.length;n++){var o=e[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,e,n){return e&&o(t.prototype,e),n&&o(t,n),t}}(),a=n(2),c=(o=a)&&o.__esModule?o:{default:o};var u=function(){function e(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,e),this.resolveOptions(t),this.initSelection()}return i(e,[{key:"resolveOptions",value:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,c.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,c.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=0<arguments.length&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":r(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),e}();t.exports=u},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var o=window.getSelection(),r=document.createRange();r.selectNodeContents(t),o.removeAllRanges(),o.addRange(r),e=o.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var o=this.e||(this.e={});return(o[t]||(o[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var o=this;function r(){o.off(t,r),e.apply(n,arguments)}return r._=e,this.on(t,r,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),o=0,r=n.length;o<r;o++)n[o].fn.apply(n[o].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),o=n[t],r=[];if(o&&e)for(var i=0,a=o.length;i<a;i++)o[i].fn!==e&&o[i].fn._!==e&&r.push(o[i]);return r.length?n[t]=r:delete n[t],this}},t.exports=n},function(t,e,n){var d=n(5),h=n(6);t.exports=function(t,e,n){if(!t&&!e&&!n)throw new Error("Missing required arguments");if(!d.string(e))throw new TypeError("Second argument must be a String");if(!d.fn(n))throw new TypeError("Third argument must be a Function");if(d.node(t))return s=e,f=n,(l=t).addEventListener(s,f),{destroy:function(){l.removeEventListener(s,f)}};if(d.nodeList(t))return a=t,c=e,u=n,Array.prototype.forEach.call(a,function(t){t.addEventListener(c,u)}),{destroy:function(){Array.prototype.forEach.call(a,function(t){t.removeEventListener(c,u)})}};if(d.string(t))return o=t,r=e,i=n,h(document.body,o,r,i);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList");var o,r,i,a,c,u,l,s,f}},function(t,n){n.node=function(t){return void 0!==t&&t instanceof HTMLElement&&1===t.nodeType},n.nodeList=function(t){var e=Object.prototype.toString.call(t);return void 0!==t&&("[object NodeList]"===e||"[object HTMLCollection]"===e)&&"length"in t&&(0===t.length||n.node(t[0]))},n.string=function(t){return"string"==typeof t||t instanceof String},n.fn=function(t){return"[object Function]"===Object.prototype.toString.call(t)}},function(t,e,n){var a=n(7);function i(t,e,n,o,r){var i=function(e,n,t,o){return function(t){t.delegateTarget=a(t.target,n),t.delegateTarget&&o.call(e,t)}}.apply(this,arguments);return t.addEventListener(n,i,r),{destroy:function(){t.removeEventListener(n,i,r)}}}t.exports=function(t,e,n,o,r){return"function"==typeof t.addEventListener?i.apply(null,arguments):"function"==typeof n?i.bind(null,document).apply(null,arguments):("string"==typeof t&&(t=document.querySelectorAll(t)),Array.prototype.map.call(t,function(t){return i(t,e,n,o,r)}))}},function(t,e){if("undefined"!=typeof Element&&!Element.prototype.matches){var n=Element.prototype;n.matches=n.matchesSelector||n.mozMatchesSelector||n.msMatchesSelector||n.oMatchesSelector||n.webkitMatchesSelector}t.exports=function(t,e){for(;t&&9!==t.nodeType;){if("function"==typeof t.matches&&t.matches(e))return t;t=t.parentNode}}}])});
- </script>
- <script type="text/javascript">
- var clipboard = new ClipboardJS('.clip');
- clipboard.on('success', function (e) {
- window.location.href="weixin://dl/officialaccounts";
- });
- </script>
- <script type="text/javascript">
- //获取url参数
- function getQueryString(name) {
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
- var r = decodeURIComponent(window.location.search)
- .substr(1)
- .match(reg);
- if (r != null) return unescape(r[2]);
- return null;
- }
- //添加input
- function clipbroad() {
- }
- //全局变量
- var glob = {
- ua: window.navigator.userAgent.toLocaleLowerCase(),
- isHuaWei: /huawei|honor/.test(window.navigator.userAgent.toLowerCase()),
- isOpenApp: false,
- obAvailable: false //机型是否支持快应用
- };
- //快应用配置
- var QYY = {
- isWx: /micromessenger/.test(glob.ua), //是否微信环境
- isIos: /iphone|ipod|ipad/.test(glob.ua), //是否是ios
- entry: "views/Reader", //拉起快应用阅读器页面
- packName: "{{ $package }}", //快应用包名
- bid: "{{$hash_bid}}", //书籍id
- cid: "{{$cid}}", //章节id
- send_order_id: "{{$send_order_id}}",//派单ID
- };
- //判断机型是否支持快应用
- try {
- channelReady(function (bAvailable) {
- glob.obAvailable = bAvailable;
- });
- } catch (e) {
- glob.obAvailable = false;
- }
- //显示公众号落地页
- function showH5Page() {
- var time = QYY.isIos ? 0 : 5000;
- //2S后自动刷新
- /* setTimeout(function () {
- if(!getQueryString('isResh')){
- location.href= window.location.href + '?isResh=1'
- }
- },1700) */
- //5秒显示失败页面
- setTimeout(function () {
- $(".content-wrap").show();
- showPop(false);
- }, time);
- }
- //是否显示拉起快应用弹窗
- function showPop(show) {
- if (show) {
- $(".open-gif").show();
- } else {
- $(".open-gif").hide();
- }
- }
- //打开快应用逻辑
- function openQyy() {
- var parmas = {
- bid: QYY.bid,
- chapter_id: QYY.cid,
- send_order_id: QYY.send_order_id
- };
- try {
- if(QYY.isWx){
- appRouter(QYY.packName, "/" + QYY.entry, parmas);
- }else{
- routerAHap(parmas);
- //appRouter(QYY.packName, "/" + QYY.entry, parmas);
- }
- //尝试直接拉起
- } catch (e) {
- //唤醒失败 尝试url sheme唤醒
- try {
- appRouter(QYY.packName, "/" + QYY.entry, parmas);
- } catch (er) {
- routerAHap(parmas);
- }
- }
- }
- //URL唤醒快应用
- function routerAHap(data) {
- var parmas = $.param(data);
- var ohapa = document.createElement("a");
- ohapa.href = "https://hapjs.org/app/" + QYY.packName + "/" + QYY.entry + "?" + parmas;
- ohapa.setAttribute(
- "style",
- "position: absolute;left: -1000rem;height: 1rem;width: 1rem;overflow: hidden"
- );
- document.body.appendChild(ohapa);
- ohapa.click();
- }
- //初始化
- function startDeep() {
- showH5Page();
- !QYY.isIos && openQyy();
- }
- //华为h5流程
- var hwPage = {
- init: function () {
- this.lisen();
- $(".hw-guide").css("height", $(".hw-guide").width() * 1.778);
- $(".hw-guide").show();
- },
- lisen: function () {
- $(".btn-know").on("click", function () {
- $(".hw-guide").hide();
- showPop(true);
- startDeep();
- });
- }
- };
- $(function () {
- //页面流程开始
- //处理弹出框的高度
- $(".open-conetent").height($(".open-conetent").width() * 0.75);
- //华为手机显示提示页
- // if (glob.isHuaWei) {
- // setTimeout(function () {
- // hwPage.init();
- // showPop(false);
- // }, 3000);
- // } else {}
- setTimeout(function(){
- startDeep();
- },400)
- });
- </script>
- </body>
- </html>
|