晴彩巴厘 發表於 2020-9-27 22:11:00

UNI-APP常用方法

<p><span style="font-size: 18px"><strong>1、判断第三方程序是否已存在</strong></span></p>
<div class="cnblogs_code">
<pre>Boolean plus.runtime.isApplicationExist(appInf);</pre>
</div>
<p>如果第三方程序已安装则返回true,未安装则返回false。</p>
<p>appInf:&nbsp;<em>(&nbsp;ApplicationInf&nbsp;) 必选&nbsp;</em>要判断第三方程序的描述信息</p>
<p>Android平台需要通过设置appInf的pname属性(包名)进行查询。 iOS平台需要通过设置appInf的action属性(Scheme)进行查询,在iOS9以后需要添加白名单才可查询,在manifest.json文件plus-&gt;distribute-&gt;apple-&gt;urlschemewhitelist节点下添加(如urlschemewhitelist:["weixin"]).</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 判断第三方程序(微信) 是否安装</span>
<span style="color: rgba(0, 0, 0, 1)">function checkApp(){
    </span><span style="color: rgba(0, 0, 255, 1)">if</span>(plus.runtime.isApplicationExist({pname:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">com.tencent.mm</span><span style="color: rgba(128, 0, 0, 1)">'</span>,action:<span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">weixin://</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">})){
      console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">微信应用已安装</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
    }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
      console.log(</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">微信应用未安装</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 0, 0, 1)">);
    }
}</span></pre>
</div>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">判断其他应用是否安装,可以用对应的pname和action来判断。以下是一些常用平台的pname和action。

平台 </span>| pname |<span style="color: rgba(0, 0, 0, 1)"> action
</span>-|-|- 微信 | com.tencent.mm | weixin:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> | QQ |com.tencent.mobileqq | mqq:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> | <br>新浪微博 | com.sina.weibo | sinaweibo:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> | <br>淘宝 | com.taobao.taobao | taobao:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> | <br>支付宝 | com.eg.android.AlipayGphone | alipay:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> | <br>京东 | com.jingdong.app.mall | openApp.jdMobile:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> | <br>优酷 | com.youku.phone | youku:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> | <br>高度地图 | com.autonavi.minimap | iosamap:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> | <br>百度地图 | com.baidu.BaiduMap | baidumap:</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> |</span></pre>
</div>
<p>&nbsp;http://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.isApplicationExist</p>
<p>2<strong>、判断APP强制更新弹层</strong></p>
<div class="cnblogs_code">
<pre>// 接口获取当前版本信息<br>viewAppConfigApi().then((res) =&gt;<span style="color: rgba(0, 0, 0, 1)"> {
   </span><span style="color: rgba(0, 0, 255, 1)">if</span>(res.code == <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">){
     // app当前版本<br>     plus.runtime.getProperty(plus.runtime.appid,(wgtinfo)</span>=&gt;<span style="color: rgba(0, 0, 0, 1)">{
             versionNow </span>=<span style="color: rgba(0, 0, 0, 1)"> wgtinfo.version;
                  </span><span style="color: rgba(0, 0, 255, 1)">if</span>(verisonPlate !==<span style="color: rgba(0, 0, 0, 1)"> versionNow){
                           </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 版本号不同了</span>
                              <span style="color: rgba(0, 0, 255, 1)">if</span>(plate == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">android</span><span style="color: rgba(128, 0, 0, 1)">'</span> &amp;&amp; plateformConfig.isAndroidEnabled == <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">){
                                    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 安卓已上架</span>
<span style="color: rgba(0, 0, 0, 1)">                                    uni.hideTabBar();
                                    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.showUpdate = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;</span><span style="color: rgba(0, 0, 0, 1)">
                              }</span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span>(plate == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ios</span><span style="color: rgba(128, 0, 0, 1)">'</span> &amp;&amp; plateformConfig.isIosEnabled == <span style="color: rgba(128, 0, 128, 1)">1</span><span style="color: rgba(0, 0, 0, 1)">){
                                    </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> IOS已上架</span>
<span style="color: rgba(0, 0, 0, 1)">                                    uni.hideTabBar();
                                    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.showUpdate = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;</span><span style="color: rgba(0, 0, 0, 1)">
                              }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                                    </span><span style="color: rgba(0, 0, 255, 1)">this</span>.showUpdate = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
                                    uni.showTabBar();
                              }
                      }</span><span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
                              </span><span style="color: rgba(0, 0, 255, 1)">this</span>.showUpdate = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
                              uni.showTabBar();
                      }
             })</span><span style="color: rgba(0, 0, 0, 1)">
       }
})</span></pre>
</div>
<p>点击立即更新跳转</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">if</span>(plate == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">android</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                  </span><span style="color: rgba(0, 0, 255, 1)">this</span>.isLoading = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
                  uni.downloadFile({
                        url: </span><span style="color: rgba(0, 0, 255, 1)">this</span><span style="color: rgba(0, 0, 0, 1)">.downLoadUrl,
                        success: data </span>=&gt;<span style="color: rgba(0, 0, 0, 1)"> {
                            </span><span style="color: rgba(0, 0, 255, 1)">this</span>.isLoading = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
                            </span><span style="color: rgba(0, 0, 255, 1)">if</span> (data.statusCode === <span style="color: rgba(128, 0, 128, 1)">200</span><span style="color: rgba(0, 0, 0, 1)">) {
                              plus.runtime.install(data.tempFilePath, {
                                    force: </span><span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">
                              }, function() {
                                    plus.runtime.restart();
                              });
                           }
                        }
                  })
                }</span><span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span>(plate == <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">ios</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">){
                  </span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">在App Store Connect中的App Store下的app信息,可找到appleId</span>
                  let appleId= <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">K64HH6LH8M</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">;
                  plus.runtime.launchApplication({
                        action: `itms</span>-apps:<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">itunes.apple.com/cn/app/id${appleId}?mt=8`</span>
<span style="color: rgba(0, 0, 0, 1)">                  }, function(e) {
                        console.log(</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">Open system default browser failed: </span><span style="color: rgba(128, 0, 0, 1)">'</span> +<span style="color: rgba(0, 0, 0, 1)"> e.message);
                  });
                }</span></pre>
</div>
<p>&nbsp;3、富文本组件</p>
<p>插件市场直接找mp-html</p>
<p>使用很简单</p>
<div class="cnblogs_code">
<pre>&lt;mp-html :previewImg=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">false</span><span style="color: rgba(128, 0, 0, 1)">"</span> :showImgMenu=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">false</span><span style="color: rgba(128, 0, 0, 1)">"</span> :lazyLoad=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">false</span><span style="color: rgba(128, 0, 0, 1)">"</span> :content=<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">content</span><span style="color: rgba(128, 0, 0, 1)">"</span> /&gt;</pre>
</div>
<p>&nbsp;4、APP 一般会有启动页,在进入第一个面的时候</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1)">onReady() {
            </span><span style="color: rgba(0, 0, 255, 1)">this</span>.$nextTick(() =&gt;<span style="color: rgba(0, 0, 0, 1)"> plus.navigator.closeSplashscreen())
      },</span></pre>
</div>
<p>&nbsp;</p>

</div>
<div id="MySignature" role="contentinfo">
    浩楠哥<br><br>
来源:https://www.cnblogs.com/haonanZhang/p/13742164.html
頁: [1]
查看完整版本: UNI-APP常用方法