在不借用外壳方法的情况下,怎么调用第三方app?

  1. 第一步是判断手机是Android还是IOS系统。
  2. 第二步,根据手机类型不同怎么去拉取第三方app。
  3. 第三步,如果能拉取,怎么拉取第三方app。
  4. 第四步,如果不能拉取,怎么解决。

判断机型
做需求的时候外壳会告诉你怎么判断是ios还是安卓
ios (网上找的)

isIos() {
    var ua = navigator.userAgent.toLocaleLowerCase()
    var u = navigator.userAgent
    var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) // ios终端
    return isIOS
isAndroid() {
    var ua = navigator.userAgent.toLocaleLowerCase()
    var u = navigator.userAgent
    var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1 // g
    return isAndroid

在网上找过一篇文章 说ios机型还需要判断是9+还是9以下
判断ios型号(网上找的 我记得一行代码就可以搞定了)

    var str= navigator.userAgent.toLowerCase(); 
    var ver=str.match(/cpu iphone os (.*?) like mac os/);
    if(!ver){
        alert("请在Ios系统中打开");
    }else{
        alert("你当前的Ios系统版本为:"+ver[1].replace(/_/g,"."));
//苹果9以上
if(iOS9) {
    window.location.href = ${universalLink};
//9以下
else {
	var ifr = document.createElement('iframe');
    ifr.src = ${scheme};
    ifr.style.display = 'none';
    document.body.appendChild(ifr);
    window.setTimeout(function () {
       document.body.removeChild(ifr);
    }, 300);
举个栗子:
${universalLink} = 'http://myapp.com'
${scheme} = 'myapp://index'

能不能拉取

const initialTime = new Date();
let counter = 0;
let waitTime = 0;
const checkOpen = setInterval(() => {
   count++;
   waitTime = new Date() - initialTime;
   if (waitTime > 2500) {
      clearInterval(checkOpen);
      cb();
   if (counter < 100) return;
   const hide = document.hidden || document.webkitHidden;
   if (!hide) {
      cb(); // 唤端失败的回调函数
}, 20);

还有就是保底策略

//URL是下载APP的链接
window.location.href=URL

上面的cb()函数就要结合这个保底策略

有用的一些调用APP链接参考
H5唤起APP指南
H5页面拉起第三方App

h5怎么调用第三方app?在不借用外壳方法的情况下,怎么调用第三方app?方案思路h5调用第三方app,首先第一步是判断手机是Android还是IOS系统。第二步,根据手机类型不同怎么去拉取第三方app。第三步,如果能拉取,怎么拉取第三方app。第四部,如果不能拉取,怎么解决。...
5+APP原生第三方插件开发流程:1、离线打包https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android;开发工具:Hbuilder(X),Android Studio。 为什么要用离线打包呢,因为是开发安卓第三方插件,主要用的是Android Stuido,所以把5+APP项目导到Android studio里来,方便开发和测试。 其实还有一个原因,涉及到的第三方插件用到了系统级权限,要用platform.pk8来签名打包,才能运行。所以用离线
调起app是操作系统(iOS、Android)的机制,在h5页面,我们可以做的不多。 在调起之前,h5页面无法判断当前手机是否安装了对应的app,我们只能去尝试调起,并且用一些方法来处理没有调起的情况。 调起的原理就不介绍了,网上一搜一大堆。直接上核心代码。 if(iOS...
WebView是html与Android直接联系的纽带,可以通过WebView实现Android调用web端内容方法,WebView也可以实现web调用Android的方法并获取返回值。以下是对web端和android本地通过WebView交互方法的总结。 一:web调用Android端 1)可以通过webview的addJavaScriptInterfance(Object 对象,...
app唤醒方式 1 应用宝调起 很早前在微信和qq浏览器中采用的调起方式,在安装了应用宝的情况下,若已安装app,可通过应用宝直接调起,未安装,则引导去应用宝中下载,目前基本不再使用。 2 url scheme协议 一种页面内跳转协议,通过定义自己的scheme协议,可以方便的跳转到app中的各个页面。 scheme]://[host][:port]/[path]?[query] 协议名称(必选) 域名 端口 页面路径 请求参数 有协议名称即可拉起app,如在safari浏览器中输入
项目根目录中的main.js中,引入并使用uView的JS库,注意这两行要放在import Vue之后。 // main.js import uView from "uview-ui"; Vue.use(uView); #2. 在引入uView的全局SCSS主题文件 在项目根目录的uni.scss中引入此文件。 /* uni.scss */ @import 'uview-ui/theme.scss'; #3. 引入uView基础样式 在App.vue中
Android4.4+方法 如果你项目的minSdkVersion 为4.4 以上,那么你可以直接通过WebView的evaluateJavascript()方法 拿到JS方法的返回值 mWebView.evaluateJavascript("javascript:JSMethod()", new ValueCallback<String>() { @Ove...
我司项目提供Android的SDK(jar,aar),而客户使用HBuilder开发H5项目,为了能让客户顺利集成我司业务能力,没办法要折腾Demo了,没有经验怎么办? 前面介绍过HBuilder的使用,官方也有明确HBuilder要调用jar包需要使用AndroidStudio离线打包的方式;所以,本项目也不例外,那就开始准备吧! 一、资源下载 从这里下载H5 SDK包,地址:http:...
微信公众号平台是一个非常重要的社交媒体平台,不仅提供了便捷的聊天和朋友圈功能,还让用户创建自己的公众号,发布文章或推广产品。现在,微信公众号又推出了新功能:直接加载第三方H5网页。这种新功能在传统的互联网行业中早已普及,但是在微信公众号中实现这个功能还是比较方便的。 通过使用微信公众号直接加载第三方H5,用户可以将其他的网站的信息共享到微信中,这样可以方便用户在微信公众号中查看网页内容,从而节约用户的时间和精力。如果想使用这项功能,用户只需要在微信公众号后台添加第三方H5即可,这非常容易实现。 但是,直接加载第三方H5网页不遵循微信公众平台的规则,需要在安全性和可靠性上更加谨慎。因为加载的第三方H5是从其他网站引入的,必须注意安全性,避免不安全的标签注入和代码脚本注入等安全问题。此外,在加载时还必须考虑兼容性,以确保在微信公众号中浏览网页内容的质量。 总之,微信公众号直接加载第三方H5网页是一个非常实用的功能,为用户提供了更便捷的体验。但是,需要注意安全性和兼容性,以确保平台和用户的信息安全和稳定性。故,让微信公众号直接加载第三方H5不会引起比较大的影响,而是可以为公众号的用户提供更多其他来源的信息。