精华内容
下载资源
问答
  • 2021-06-08 12:06:34

    安卓用的ifarme方法

    `var ifr = document.createElement("iframe");

    var t1 = new Date().getTime();                    document.body.appendChild(ifr);

    ifr.setAttribute('style', 'display:none');

    ifr.setAttribute('src', 'lewddriver://lsj/opensns?url='+lochref);

    setTimeout(function() {                        document.body.removeChild(ifr);

    }, 100);

    setTimeout(function() {                        var t2 = new Date().getTime();

    if (t2 - t1 

    (function() {                                //若iframe调用失败,尝试下载apk

    window.location.href = _this.apkUrl;

    })();

    }

    }, 200);

    更多相关内容
  • path:同上 ※没有也可以唤起 注意: Activity配置中android:exported=true这个外部是否可以调用一定要写true,要不然会调用不成功,对于应用安全要求较高的一定要注意。 2、浏览器如何调起 <!--打开APP--> ...
  • 1、Scheme的作用,浏览器唤起APP。 2、遇到的不生效问题原因及解决办法。

    此文章已收入Android偶遇杂症合集(持续更新)

    1、Scheme的作用,浏览器唤起APP

    常见在手机浏览器打开某个网站,会有个 App 内打开的按钮,点击直接打开APP且跳转到该详情页,用的基本都是Scheme。Scheme的基本使用如下:

    <activity android:name=".MainActivity">
        <!-- 需要添加下面的intent-filter配置 -->
        <intent-filter>
            ...
            <data
                android:scheme="myscheme"
                android:host="myhost"
                android:port="1024"
                android:path="/main" />
        </intent-filter>
    </activity>
    

    在web页面添加一个点击事件跳转:

    <a href="myscheme://myhost:1024/main?key1=value1&key2=value2">open app with Uri Scheme</a>
    

    被唤起的MainActivity中,可以在onCreate(APP未打开)和onNewIntent(APP已打开)方法中拿到跳转的链接:

    Intent intent = getIntent();
    if (null != intent && null != intent.getData()) {
        Uri uri = intent.getData();
        Log.e(TAG, "uri=" +uri);
        String scheme = uri.getScheme();
        String host = uri.getHost();
        int port = uri.getPort();
        String path = uri.getPath();
        String key1 = uri.getQueryParameter("key1");
        String key2 = uri.getQueryParameter("key2");
        Log.e(TAG, "scheme=" + scheme + ",host=" + host
                + ",port=" + port + ",path=" + path
                + ",query=" + uri.getQuery()
                + ",key1=" + key1 + ",key2=" + key2);
    }
    

    打印消息如下:

    uri=myscheme://myhost:1024/main?key1=value1&key2=value2
    scheme=myscheme,host=myhost,port=1024,path=/main,query=key1=value1&key2=value2,key1=value1,key2=value2
    

    2、遇到的不生效问题原因及解决办法

    在应用中增加了Scheme,兴致勃勃启动浏览器按下核弹发射按钮,结果气氛逐渐尴尬。。。

    问题出在哪呢?仔细比对了链接地址、AndroidManifest的配置,苍天啊,分明是一样的,令人崩溃!!!

    然后一个偶然的机会,用了AS自带的Android模拟器里的web test APP开启这个链接,打开了一个新的页面,显示了设置的链接地址,问题的原因找到了!!!

    我在web页面中设置的链接为MyScheme://MyHost,点开的页面显示的链接是myshceme://myhost,神奇的事情,搜索一下发现了一篇文章,这位前辈和我遇到了一样的情况,文章链接如下:

    H5无法调起android app 的坑之 scheme 大小写

    最终结果就是,Scheme链接千万别用大写字母,包括scheme、host、port、path。

    完毕

    今天的分享就到这里,文章多有不足,各位小伙伴有什么想法可以直接评论或是私信,要是对你有所帮助就给我一个赞吧,喜欢我的小伙伴可以关注我哦~

    支持我的小伙伴们可以微信搜索“Android思维库”,或者微信扫描下方二维码,关注我的公众号,每天都会推送新知识~
    在这里插入图片描述

    展开全文
  • 这个功能在实现上主要分为两种场景,从普通浏览器唤醒以及从微信唤醒。这两个场景又分为了IOS端和安卓端 配置 安卓 在manifest.json的"app-plus"->“distribute”->"android"节点下添加schemes数据:“schemes...

    需求

    当用户打开h5 链接时候 ,点击打开app, 若用户在已经安装过app的情况下直接打开app,若未安装过跳到应用市场下载安装

    这个功能在实现上主要分为两种场景,从普通浏览器唤醒以及从微信唤醒。这两个场景又分为了IOS端和安卓端

    配置

    安卓
    在manifest.json的"app-plus"->“distribute”->"android"节点下添加schemes数据:“schemes” : “nameAPP”

    "schemes" :  ["nameAPP"]
    

    在这里插入图片描述

    IOS
    在manifest.json的"app-plus"->“distribute”->"ios"节点下添加urltypes数据:

    "urltypes": [{
                    "urlidentifier": "xxx.xxx", //  一般为域名倒写,例如 taobao.com
                    "urlschemes": ["nameAPP"]
       }],
       "urlschemewhitelist":["nameAPP"]	 //白名单
    

    在这里插入图片描述

    注意

    下面代码的 nameAPP:// 就是代表着schemes/Universal Link 通用链接,也就是跳到自己app 的快捷链接 如果链接需要带参数的话redxiang://params ,这里的我写的是没带参数的,我只做了微信浏览器的判断,因为微信直接打开的h5链接是不能直接换起app的,需要在微信开放平台配置相关参数**(偷个懒直接让它跳到应用市场)。目前直接获取当前手机是android还是ios

    微信开放标签文档

    <view class="sign-box" @click="myplayUser">
    				立即下载
    </view>
    
    data() {
    			return {
    				timer:null,
    				opening:null,
    			}
    		},
    

    这里做了监听visibilitychange事件是浏览器新添加的一个事件,当浏览器的某个标签页切换到后台,或从后台切换到前台时就会触发该消息,简单说相当于onhide

    	watch: {
    			'opening': {
    				handler: function(newVal, oldVal) {
    					if(newVal == false){
    						document.addEventListener("visibilitychange",()=> {
    						  if (this.timer) {
    						    // this.opening = false
    						    clearTimeout(this.timer)
    						  }
    						}, false);
    					}
    					
    				},
    				immediate:true
    			}
    		},
    

    写好了之后记得需要打包自定义基座测试

    也是第一次写,还是看到一个大佬的文章 写的

    myplayUser(){
    				//判断是否微信登陆 是的话直接跳到应用市场
    				var u = navigator.userAgent;
    				var isWeixin = u.toLowerCase().indexOf('micromessenger') !== -1; // 微信内
    				if(isWeixin>-1){
    					if (uni.getSystemInfoSync().platform == 'android') {
    						 window.location = 'https://a.app.qq.com/o/simple.jsp?pkgname=xxxxxxxxxxx'
    					}else if (uni.getSystemInfoSync().platform == 'ios'){
    						 window.location = 'https://apps.apple.com/cn/app/idxxxxxxx'
    					}
    					return false
    				}
    				//若在其他浏览器 
    				uni.showLoading({
    					title:'跳转中...'
    				})
    				 let that = this
    				  that.opening = true
    				  if (uni.getSystemInfoSync().platform == 'android') { //  安卓处理
    				    let ifr = document.createElement('iframe');
    				    ifr.src = "nameAPP://";  //配置的app 链接"schemes" :  ["nameAPP"]
    				    ifr.style.display = 'none';
    				    document.body.appendChild(ifr); //如果可以已经安装就可以直接打开了
    					
    					that.timer = window.setTimeout(function () {  //  未安装的情况
    				      that.opening = false
    				      document.body.removeChild(ifr);
    				      //  提示下载
    					    uni.hideLoading()
    				      let r = confirm("未安装APP? 是否下载")
    				      if (r) {
    				        window.location = 'https://a.app.qq.com/o/simple.jsp?pkgname=uni.zxxxxxxx'
    				      }
    				    }, 4000)
    					
    				  } else {  //  IOS处理
    				    window.location = "nameAPP://"    //如果可以已经安装就可以直接打开了
    				    that.timer = setTimeout(function () { //  未安装的情况。
    				      that.opening = false
    				      //  跳转app store
    					    uni.hideLoading()
    				      let r = confirm("未安装APP? 是否去App store查看")
    				      if (r) {
    				        window.location = 'https://apps.apple.com/cn/app/idxxxxxxx'
    				      }
    				    }, 4000);
    				  }
    			},
    
    展开全文
  • 应用B中,AndroidManifest.xml的配置如下3.在应用B中,WCDBActivity中可获取应用A中传递过来的数据三、应用A点击按钮,跳转到...应用B中,AndroidManifest.xml需要修改四、通过浏览器打开Android App 应用1、首先做成HT


    一、应用A中点击按钮,跳转到应用B

    备注:这里是默认启动应用B的启动页面

    // 通过包名获取要跳转的app,创建intent对象                        
    Intent intent = getPackageManager().getLaunchIntentForPackage("com.example.db_demo");// 这里如果intent为空,就说名没有安装要跳转的应用嘛                        
    if (intent != null) {                            
        // 这里跟Activity传递参数一样的嘛,不要担心怎么传递参数,还有接收参数也是跟Activity和Activity传参数一样//                            
        intent.putExtra("name", "Liu xiang");//                            
        intent.putExtra("birthday", "1983-7-13");                            
        startActivity(intent);                        
    } else {                            
        // 没有安装要跳转的app应用,提醒一下                            
        ToastUtils.success("哟,赶紧下载安装这个APP吧");                        
    }
    
    

    二、应用A中点击按钮,跳转到应用B中的指定Activity——(scheme方式)

    1.应用A中,点击按钮

    startActivity(new Intent(Intent.ACTION_VIEW, 
    Uri.parse("scheme_db://123123123")));
    
    

    2.应用B中,AndroidManifest.xml的配置如下

    <activity android:name=".ui.WCDBActivity"    
        android:launchMode="singleInstance"> //多窗口,可添加android:launchMode="singleInstance"
        <intent-filter>        
            <category android:name="android.intent.category.DEFAULT" />        
            <action android:name="android.intent.action.VIEW"/>
            <data android:scheme="scheme_db"/>  //通过scheme名称,可启动WCDBActivity
        </intent-filter>
    </activity>
    
    

    3.在应用B中,WCDBActivity中可获取应用A中传递过来的数据

    getIntent().getScheme();//获得Scheme名称
    String data = getIntent().getDataString();//获得Uri全部路径
    Toast.makeText(this, data+"",Toast.LENGTH_LONG).show();
    
    

    三、应用A点击按钮,跳转到应用B的指定Activity——(指定包名和Activity全路径)

    1.应用A中,点击

    /**指定包名和带包名的Activity的名字*/
    ComponentName componentName = 
        new ComponentName("com.example.db_demo", 
        "com.example.db_demo.ui.SQLiteActivity");
    Intent intent = new Intent();
    intent.putExtra("id", 1001);
    intent.setComponent(componentName);
    startActivity(intent);
    
    

    2.应用B中,AndroidManifest.xml需要修改

    <activity 
        android:name=".ui.SQLiteActivity"    
        android:exported="true" //必须配置,否则不能被其他应用开启
        //如果想要在相邻窗口打开,则修改启动模式singleTask或者singleInstance
        android:launchMode="singleTask"/>
    
    

    四、通过浏览器打开Android App 应用

    原理同方法二,使用scheme

    1、首先做成HTML的页面,页面内容格式例如以下:

    <a href="[scheme]://[host]/[path]?[query]">启动应用程序</a> 
    

    各个项目含义例如以下所看到的:
    scheme:判别启动的App。 ※具体后述
    host:适当记述
    path:传值时必须的key ※没有也能够
    query:获取值的Key和Value ※没有也能够

    作为测试例如以下:

    <a href="myapp://jp.app/openwith?name=zhangsan&age=26">启动应用程序</a>
    

    2、app应用中,待打开的Activity在AndroidManifest.xml的配置如下:

    <intent-filter>  
        <action android:name="android.intent.action.VIEW"/>  
        <category android:name="android.intent.category.DEFAULT" />  
        <category android:name="android.intent.category.BROWSABLE" />  
        <data 
        	android:scheme="myapp" 
        	android:host="jp.app" 
        	android:pathPrefix="/openwith"/>  
    </intent-filter>
    

    3、接下来在Activity中须要取值的地方加入下面代码:

    Intent i_getvalue = getIntent();  
    String action = i_getvalue.getAction();  
      
    if(Intent.ACTION_VIEW.equals(action)){  
        Uri uri = i_getvalue.getData();  
        if(uri != null){  
            String name = uri.getQueryParameter("name");  
            String age= uri.getQueryParameter("age");  
        }  
    }
    
    展开全文
  • 使用uri的方式唤起unity游戏时遇到问题:在应用已经启动的情况下接受不到手机浏览器传递过来的参数 原因:在应用已启动的情况下唤起时不会走再次走onCreate,而是会调用onNewIntent,因此需要通过重写onNewIntent...
  • Android 实现浏览器打开app

    千次阅读 2021-06-04 16:52:01
    要想实现浏览器内打开app,其实我们可以看做就是打开一个链接,只是我们普通的链接都是http或者https开头的,如果要想打开app,那我么需要自定义这个schem。首先我们来学下下uri的组成吧scheme://host...
  • 点击浏览器中的URL链接,启动特定的App。首先做成HTML的页面,页面内容格式如下:a href=[scheme]://[host]/[path]?[query]启动应用程序a 这一句就可以了。当然点击浏览器中的URL链接,启动特定的App。首先做成HTML...
  • 浏览器唤起App

    千次阅读 2017-04-12 14:25:17
    浏览器唤起App
  • h5页面唤起app如果没安装就跳转下载(iOS和Android) 浏览器和app没有通信协议,所以h5不知道用户的手机释放安装了app。因此只能是h5去尝试唤起app,若不能唤起,引导用户去下载我们的app。 微信里屏蔽了 schema 协议,...
  • 主要介绍了详解如何通过H5(浏览器/WebView/其他)唤起本地app的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 为了提高转化率,就需要让用户不管是在微信或者是浏览器中,都能在点击链接后, 唤起本地的 app 后 , 跳转到指定页面 。 虽然这个功能从用户体验方面来说是自然而然的,但是由于iOS/Android平台差异性,在实现...
  • WappBrowser是一个Android In-App浏览器,这个浏览器遵循亚美H5框加规范,规范主要将H5
  • iOS/Android 微信及浏览器唤起本地APP
  • 微信公众号唤起app文档 https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_H5_Launch_APP.html https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html#1 【给做...
  • android 浏览器跳转app

    2018-08-16 13:24:00
    <!-- Tell Cocos2dxActivity the name of our .so -->...meta-data android:name="android.app.lib_name" android:value="cocos2dlua" /> <activity android:name="org.cocos2dx.lua.AppActivi...
  • Android通过Scheme协议打开APP界面 web页通过浏览器打开 js scheme 打开手机app的方法 Android 中 配置scheme,APP 中获取 Scheme中的参数值 如果你也热衷技术欢迎加群一起进步:230274309 。 一起分享,一起进步!...
  • 微信浏览器唤醒App

    2021-09-02 14:28:36
    如下图所示,顶部会有一个广告图,点击这个广告图,如果手机上已经安装了App,则直接打开,如果没有安装,则开始下载,如果在微信公众号中,则跳转应用宝第三方平台跳转。 html <span @click="openAppClick" ...
  • 借助Deeplink,实现从H5快速跳转到App 在移动端,Deeplink可以实现从H5页面直接跳到App指定页面的功能。比如你可以把一个H5页面在应用程序中分享给微信朋友,好友点击此链接就可以直接打开相应的App详细信息,而非...
  • h5唤起app解决方案

    2021-06-05 02:15:37
    最近遇到一个需求:点击一个按钮,如果本机装有则唤起app,没有的话则跳下载页。刚一接到需求,觉得很熟悉,实际上这个功能也确实很常见,页能搜索到一大堆方案,但是实际应用中,却发现总是很难做到100%的完美。这...
  • 安卓微信浏览器唤起系统内部浏览器 最近因为公司项目需求,需要做一个功能。使用微信浏览器打开高德地图导航,经试验,高德web端没有导航功能,其实现原理是调起高德APP来实现导航的操作。然后把代码写进微信...
  • 1.一般公司有自己的app,而app是需要不断有新用户涌入才能持续运营,达到不错的收入。就需要使用这种方式进行引入新的用户。 2.一些内容在网页端体验不好,或者一些功能需要app内才能实现,就需要将用户引入app中。...
  • 1.AndroiManifest.xml中配置请在App启动的第一个Activity的那个节点中加入android:scheme="zhaojian"/>例如我是以GuideActivity为第一个启动的Activity,配置...在浏览器中唤醒APP需要在第一个启动的Activity中...
  • 微信浏览器打开APP

    千次阅读 2021-10-27 13:55:58
    微信浏览器会阻止在其中直接打开APP 所有一般需要引导用户去其他浏览器 但是如果还是想在微信浏览器直接打开APP的话可以通过 wx-open-launch-app这个组件 这里是官方文档 需要的一些信息 在使用这个组件之前我们需要...
  • 可能是最全的h5唤起App方案

    千次阅读 2021-11-08 16:19:39
    android6及以上用applink(chrome和小众浏览器支持,市场占比还是比想像中大的) 其它情况scheme(各种限制及弹窗确认) 微信ios7月的版本已经支持ulink了,android还是乖乖走应用宝吧(引导出微信也行,效果不好)...
  • 最近有个需求,需要通过网页启动app,做了个本地的html尝试,发现先启动本地的app,然后再用浏览器启动时,不会跳转到已经启动的实例,而是浏览器里面也启动了这个app,一个app启动场景不一样,如何让浏览器启动跳到...
  • 常见APP唤起错误集锦

    2017-10-31 13:39:00
    常见APP唤起错误问题排查,大多都是采坑记录,几乎涵盖所有唤起问题

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,044
精华内容 817
关键字:

安卓浏览器唤起app