js打开app,浏览器差异问题求大神解决

下面是我的打开app的代码,以微信为例:

    function openWeixin() {
            var ifr = document.createElement('iframe');
            ifr.src = 'weixin://';
            ifr.style.display = 'none';
            document.body.appendChild(ifr);
            window.setTimeout(function () {
                document.body.removeChild(ifr);
            }, 3000)
        }

但是这个代码存在明显兼容性问题,只有某些浏览器可以打开微信,求一段通用的代码,可以屏蔽常用手机浏览器的差异,比如微信浏览器,qq浏览器等等

0

2个回答

上述问题已经解决,我的解决办法是这样的,因为浏览器可能存在iframe差异,但是对于location的跳转总没有差异吧?所以上述代码修改为
function openWeixin(){
window.location.href="weixin://";
window.setTimeout(function(){
window.location.href="http://.....";
},3000);
}
实测,问题解决

-1
1
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
解决不同js特效在不同浏览器之间的兼容问题
这几天开发一个网站,做完之后放在内网让公司的人都浏览一遍看看有什么问题,果然,,,出现问题了,就是有的浏览器打开之后js无法使用,网页布局还都乱了,刚开始以为是js代码写的有问题,就仔仔细细检查了一遍js代码,不过也没发现什么错误,我在网上百度了一下,是浏览器之间的兼容性问题,如果浏览器选择用“极速模式”就可以完美运行。那么问题来了,怎么才能让网页运行的时候以“极速模式”运行呢?n最终找到了解决
浏览器之间样式差异———解决
做前端开发,调试是必不可免的。鉴于谷歌强大的调试工具,一般开发还是用谷歌浏览器做调试比较好。 n但谷歌有利也有弊,因为谷歌有自动补全机制,所以有些错误我们还是要借助其他浏览器来进行调试。 n浏览器之间内核不一样,的确会存在差异,如果真的是内核之间大的差异引起的,那就没办法了。但是也有可能是默认样式引起的,因为浏览器之间的默认样式也不一样。一般都会引入重置样式尽量消除浏览器之间的差异。可以引入norm
解决JS打开新窗口被浏览器拦截的问题
n 今天有一个需求是当用户需要获取到自己上传的资源链接,然后点击查看跳转到对应的资源挂载点。突然发现使用JS的window.oepn()操作会导致浏览器拦截。nnn原来当window.open为用户触发事件内部或者加载时,不会被拦截,一旦将弹出代码移动到一段异步代码内部,就会被拦截。nn因此我们通过ajax必须设置成同步模式即可解决。nnnn$.ajax({n url:url,n ...
android 通过浏览器启动app,如果本地app先启动了,会出现启动两次的问题
最近有个需求,需要通过网页启动app,做了个本地的html尝试,发现先启动本地的app,然后再用浏览器启动时,不会跳转到已经启动的实例,而是浏览器里面也启动了这个app,一个app启动场景不一样,如何让浏览器启动跳到已经启动的app那里,求解
JS唤醒Android APP(包括在外部浏览器和WebView)
JS唤醒Android APP(包括在外部浏览器和WebView)rn问题:当用户在手机浏览器中点击一个按钮时,如果手机上已经安装该应用,则直接打开,如果没有安装,则转向应用下载页面。rn1.AndroiManifest.xml中配置rn请在App启动的Activity的那个节点中加入rn <intent-filter>rn <action androi...
如何解决app内嵌系统浏览器访问网页时无法加载js
在网上找到这个在app内调用系统浏览器的方法,发现部分js没加载到,用系统浏览器直接上网页是没有问题的,请问怎样解决rnrnsuper.onCreate(savedInstanceState);rn        setContentView(R.layout.activity_main);rnrn        //WebViewrn        WebView browser=(WebVie
JavaScript中浏览器打开或下载app
浏览器打开或下载app以下代码以打开百度贴吧app为例:<!DOCTYPE html>n<html lang="en"><head>n <meta charset="UTF-8">n <meta name="viewport" content="width=device-width, initial-scale=1.0">n <meta name="apple-itunes-app
解决js文件被浏览器缓存问题
1、加版本号&amp;lt;script type=&quot;text/javascript&quot; src=&quot;/js/common.js?v=1&quot; &amp;gt;&amp;lt;/script&amp;gt;2、加发布时间&amp;lt;script type=&quot;text/javascript&quot; src=&quot;/js/common.js?t=20180428&quot; &amp;gt;&amp;lt;/script&amp;gt;3、开发过程中,可以
window.open在Safari中不能打开的问题
在调移动支付问题的时候遇到过,用window.open打开一个微信支付链接,唤醒移动支付,在IOS下死活唤醒不了,是js代码冲突问题…是click事件IOS下不兼容问题…最后定位到window.open语句,之后改为window.loaction.href,奇迹般的可以唤醒支付,因此,也就很直观的证明了在Safari下用window.open是有问题的nn原因:大部分现代的浏览器(Chrome/F...
不同浏览器的前端兼容性总结
1.Safari浏览器的input框内部阴影去除(IOS内部设置的)    input{     -webkit-appearance: none;     }2.手机端不同浏览器的fixed元素的滚动抖动问题        /* 兼容各个平台的fixed抖动*/        -webkit-transform: translateZ(0);/* Safari 和 Chrome */      ...
JS判断H5/Html页面,是在手机APP内或者是在手机浏览器打开
1.在前端开发过程中,遇见过一个需求,需要 H5页面 判断是在手机APP内打开,还是在手机浏览器里面打开的。n2js 获取 window.navigator.userAgent 浏览器信息,唯一的区别是在最后面会有一个当前APP里面的协议头。使用APP的协议头来加以判断。例如下面获取的信息后面会有一个 xxxpay的标识nnn3.然后我们可以使用JS方法来判断,建议使用三种方式以或者的条件进行判断...
大神F2全网通 官方5.0 自带浏览器
有些第三方定制的大神F2全网通ROM,将自带的浏览器删除了,有需要的可下载直接安装即可。
浏览器通过JS打开Android程序
做项目的时候,项目中有个需求,需要通过网页打开app,听到这个功能,我先是蛋疼了一会,但是在网上查了一下资料发现原理其实很简单,本质就是通过浏览器输入我们本地android程序的路径,不过这个路径需要我们在android中AndroidManifest.xml声明一下rnrnactivity android:name=".LoadingActivity"n and
JS判断页面由哪个APP打开
我们有个需求:rn有一个WEB页面上面有用app打开的按钮,但是在APP页面内部展示的时候是不需要这个按钮的,这时候我们就需要一段判断在哪个APP打开的JSrn最好是你们自己的APP可以提供一个返回rnnavigator.userAgent.indexOf('')rn这样只用单独判断是否在APP内部打开即可,如果没有就只能做大量判断了rnn var browser = {n
ios-DashboardBySwift.zip
github:https://github.com/coolboy-ccp/DashboardBySwift 求star,提供更详细的解释 目前无法解决渲染进度问题,求大神指导
js判断APP和浏览器
废话不多说,直接上代码,该代码通过匹配 rnrnnavigator.userAgentrn在不改变url地址的情况下,直接区分是app还是浏览器rnrnrnrnrnfunction rnisapp() {rnif rn(/^.+(Mobile\/\w+)\s?$/.test(navigator.userAgent))rn{rn// IOS端APPrnreturn rntrue;rn} else
左菜单侧滑
侧滑的一个例子 求大神解决下2次选中侧滑标签列表失焦问题
APP内嵌h5,在pc浏览器android浏览器正常运行,ios浏览器异常
通过在js代码中添加alert发现,pc浏览器android浏览器对js的包容性比较强,ios浏览器则比较敏感,遇到不规范的js马上停止运行。
html\css\js-dom在不同主流浏览器的兼容问题
html\css\js在不同浏览器的兼容问题
判断各种浏览器的内核和 移动端的类型
//判断访问终端n        var browser={n            versions:function(){n                var u = navigator.userAgent, app = navigator.appVersion;n                return {n                    trident: u.in
通过JS判断是哪个手机APP打开的该页面
今天公司的需求是做固码支付,就是收钱吧的那种不管哪个app扫码打开都可以跳转进行支付。下面是判断APP的JS rnrn   rn        var browser = {rn                versions: function () {rn                    var u = navigator.userAgent, app = navigator.appVe
HTML5页面嵌入APP不能正常显示解决方案
❤出现问题:rn将HTML5路径用WebView加载,h5页面在选择不同的浏览器,都会出面页面加载不全现象。rn❤分析原因:rn使用HTML5 DOM存储,不会主动加载到Android WebView中。rn具体分析详见rn    https://eyalvardi.wordpress.com/2014/01/20/android-and-angularjs/ rn❤解决方案:rnwebView.
h5页面切换到后台再返回 js 定时器时间不准确解决方法
这两天做迭代任务遇到了一个难题,现在找到了解决方法,为了避免忘记,在这里记录下来。nn项目描述:一个基于vue写的h5页面,根据后端返回的当前服务器时间做一个倒计时(我是用setInterval做的)。该h5页面分别嵌套到微信公众号,和原生app中。nn nn问题描述:使用home键把页面切到后台运行,倒计时就暂停了,再切回到前台运行回去看倒计时,时间不准确(具体表现为:切出之前是20:20:20...
移动端android浏览器中input框被软键盘遮住的问题解决方案
移动端android浏览器中input框被软键盘遮住的问题解决方案nvar winHeight = $(window).height(); //获取当前页面高度n$(window).resize(function() {nvar thisHeight = $(this).height();nif (winHeight - thisHeight &amp;gt; 50) {n//当软键盘弹出,在这里面操作n...
在android浏览器中如果安装了app,则打开app,如果没有则跳转到应用市场下载。...
这个方式也兼容ios。rnrn先看htmlrnrn[code=&quot;html&quot;]rnrnrn rn App Redirectionrnrnrnrnrnrnrn var IS_IPAD = navigator.userAgent.match(/iPad/i) != null,rn IS_IPHONE = !IS_IPAD &amp;&amp; ((navigator.userAg...
微信浏览器缓存问题的终极解决方案
微信浏览器缓存,经过一段时间的尝试发现微信浏览器缓存的两个特点:n1. 微信浏览器首先会缓存整个页面的内容, 如果页面地址没有变更,在一段时间内(几个小时),进入页面都不会对页面中js,css文件发出http请求n2. 微信浏览器也会对js,css进行缓存
js 解决Safari浏览器中实现支付宝网页支付无法拉取支付宝APP的问题
简单介绍项目情况:nn支付宝支付nn第三方公司提供支付接口,返回结果是一个加密的完整的网页。nn自己写的下单业务这些。但是在页面上实现支付过程的时候,在Android手机上面无论哪种类型的浏览器都能实现自动拉取支付宝APP进行支付nn返回结果:nnresult:{"payOrderId":"P0020190604110618000381","sign":"8288C95DB8A511E82B08F...
js与android交互难点 == js唤起app
最近写项目,遇到一个比较有意思的需求,涉及到公司所有前端工作,H5,Android,IOSnn需求是这样的,nn公司运营推广APP,对外分享一个链接,这个链接由h5写成,主要就是用来介绍APP的,蛋疼的是,在末尾加了两个按钮,一个用来下载IOS的app,一个用来下载android的app,重点来了啊,在点击按钮之前先判断手机中是否有该APP,有的话,直接打开,没有的话,就直接下载!nn听着需求挺简...
关于移动端、浏览器适配解决方案优缺点对比
以下仅供自己学习记录!nn一. 移动端适配问题nn1、使用rem进行浏览器适配:比较常用nnrem(fontsizeoftherootelement)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem一定会想起em单位,em(fontsizeoftheelement)是指相对于父元素的字体大小的单位。它们之间其实很相似,只不过一个计算的规则是依赖根元素一个是...
在浏览器里判断设备来源,跳转到不同的App下载页JS
$(function () {n            $(".btn-download").click(function () {n                var u = navigator.userAgent;n                var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; /
js判断访问浏览器是安卓还是ios还是微信浏览器还是微博
rnvar u = navigator.userAgent, app = navigator.appVersion;rnvar isAndroid = u.indexOf('Android') &amp;gt; -1 || u.indexOf('Linux') &amp;gt; -1; //android终端或者uc浏览器rnvar isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+...
android 4.0接收开机广播
首先确定你的手机是否root过,安装成功后打开一次, 重启手机会打开你指定的app, (求大神指教menu屏蔽长按事件)
判断是什么设备或app内打开还是浏览器打开
判断是ios还是Androidrn const ua = navigator.userAgent.toLowerCase()rn let isiOS = falsern if(!!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)){//是iosrn isiOS = truern }else{rn isiOS = falsern }rnrnrn判断是微信还是钉钉rn const ua ...
扫二维码登录PC网页端的实现解决方案
很多网站和PC客户端为了方便用户登录,可以使用手机客户端“扫一扫”方式来登录,减少了输入用户名密码的过程。 大致原理如下:
js解决微信屏蔽内置浏览器的下载功能以及判断手机系统
今天一后台同事问我:为什么从App里面分享到微信好友时,在微信里没有发下载分享里的软件,而在浏览器中却可以?n于是我在微信公众号中试了一下,发现果然不可以下载。通过google 发现,原来是微信屏蔽了内置浏览器的下载功能。那么有没有解决办法呢? 肯定是有的。n1:判断发现是在微信中打开,给提示让其从右上角选择在浏览器中打开,这样的效果对于用户体验来说肯定是差的。n2:将要下载的app上传到腾
nodejs浏览器跨域问题解决
//直接上一段demo代码吧主要就是设置header参数(其他语言同理),如果后台需要验证Authorization的,开发阶段请先关闭,上线后再打开rnvar express = require('express');rnvar app = express();rnapp.use(express.static('public'));rnrnrn//设置跨域访问rnapp.all('*', fun
Android schema - 在浏览器里打开 app
本文参考:intent-of-androidnn以下是笔记:nnn&amp;lt;intent-filter&amp;gt;n &amp;lt;category android:name=&quot;android.intent.category.LAUNCHER&quot; /&amp;gt;n &amp;lt;action android:name=&quot;android.intent.action.MAIN&quot; /&amp;gt;n&amp;lt;/intent...
从浏览器打开一个本地应用的回退栈问题
1、首先,先理一下回退栈的问题。nn开机启动后,Home(Launcher)所在的Activity在整个回退栈的栈底。nnnnn从Launcher上的图标点击进入一个应用(Activity)时,默认在启动整个Activity的Intent的flag里面加入了NEW_TASK标记,也就是说从launcher启动的Activity默认会在一个新的Task里面。比如我们启动了一个应用,AB
js 实现呼起(打开)app
我们知道,js是无法判断手机是否安装了某款app的,但是有时候我们会有这样的需求:点击下载app按钮,如果已经安装了这款app则呼起,如果没有安装则跳转到下载页。思路: n在前端,如果想实现上述问题,首先得有个url一个android或ios人员给的url。这个url的作用是呼起app。为啥调用这个url就能呼起app呢,因为,Android和iOS 开发人员开发时可以实现在安装这款app到手机时,
JS弹出窗口不给拦截的方法
rn      往往在真实开发中,我们需要跳到第三方的网站,如果跳到第三方网站不是由用户主动触发,浏览器一般会拦截掉。今天在百度上搜到一种奇葩的方法,居然可以逃过浏览器大神的拦截,主要是通过ajax同步的方式,然后使用form提交数据跳到第三方网站,以下是具体的代码实现:rnvar Rechargedata = &quot;&quot;;rnvar ajax = {rn url: &quot;/trade/addmone...
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java的学习问题及解决 java大神班