热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

androidjs启动拨号,Android中如何通过Js唤起Activity

通过网页唤起一个app这样的场景有很多,我们来看看如何实现这样的一个功能.通过html启动Activity的原理是js代码运行了URL去匹配对应的Activity.我们可以通过配置

通过网页唤起一个app这样的场景有很多, 我们来看看如何实现这样的一个功能.

通过html启动Activity的原理是js代码运行了URL去匹配对应的Activity. 我们可以通过配置Activity的intent-filter来匹配一个URL.

android:host="eric.com"

android:scheme="schemedemo"

/>

data部分就是在构造一个匹配的Url, 启动比较常用的几个字段:

一个网址:https://zhidao.baidu.com:8080/question?name=google&page=1

scheme : 协议名,如同上面的 https.

host : 域名,zhidao.baidu.com

port : 端口号

parh : 路径 , question

query parameter : 查询参数,name=google&page=1

这里Activity的data部分你都可以自定义,以达到唯一匹配,下面我们来看看如果通过js代码启动它.

这里我们通过WebView去加载一段html, 从html跳转一个指定Activity来示范一下.

先完成一段启动该Activity的Js代码

WEB唤起原生APP

Simple Launch with parameters

(function(){

var ua = navigator.userAgent.toLowerCase();

var t;

var config = {

/*scheme:必须*/

scheme_IOS: 'schemedemo://',

scheme_Adr: 'schemedemo://eric.com/test/scheme?name=google&page=1',

download_url: document.getElementById('download-app').value,

timeout: 600

};

function openclient() {

var startTime = Date.now();

var ifr = document.createElement('iframe');

ifr.src = ua.indexOf('os') > 0 ? config.scheme_IOS : config.scheme_Adr;

ifr.style.display = 'none';

document.body.appendChild(ifr);

var t = setTimeout(function() {

var endTime = Date.now();

if (!startTime || endTime - startTime

window.location = config.download_url;

} else {

}

}, config.timeout);

window.onblur = function() {

clearTimeout(t);

}

}

window.addEventListener("DOMContentLoaded", function(){

document.getElementById("call-app").addEventListener('click',

openclient, false);

}, false);

})()

下面再来在webview中加载该js

public class MainActivity extends AppCompatActivity {

private WebView mWebView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mWebView = findViewById(R.id.web_view);

mWebView.loadUrl("file:///android_asset/callback.html");

}

}

注意我的html文件放在了这里

96da6e6c2803f3663dd004eff0e12673.png

标签:uri,Js,Activity,var,sb,Android,scheme,append

来源: https://blog.csdn.net/weixin_43351655/article/details/89475547



推荐阅读
author-avatar
mobiledu2502860153
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有