App交互demo

Android

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>方法实现</title>
<meta name="author" content="m.gome.com.cn">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<script type="text/javascript" src="js/zepto.js"></script>
</head>
<body>
<h1>JS_Android交互测试</h1>
<script type="text/javascript">

function test(){
var _log = document.createElement(‘p‘);
document.body.appendChild(_log);
_log.innerHTML = ‘JS handler [test] was called‘;
}

//打印错误日志
window.onerror = function(err) {
var errlog = document.createElement(‘p‘);
document.body.appendChild(errlog);
errlog.innerHTML = err;
}
Zepto(function(){
bridge.send(‘Enemy spotted‘);
})

window.onload = function(){
var uniqueId = 1;

//日志记录
function log(message, data) {
var log = document.getElementById(‘log‘),
el = document.createElement(‘div‘);
el.className = ‘logLine‘;
el.innerHTML = uniqueId++ + ‘. ‘ + message + (data ? ‘: ‘ + JSON.stringify(data) : ‘‘);
if (log.children.length) {
log.insertBefore(el, log.children[0]);
}
else {
log.appendChild(el);
}
}

log(‘window onload Ready‘);

/* 功能1
* 页面加载完成后给Native传值
* Native随时给js传值
* 应用场景: H5页面传值给Native,动态生成顶栏标题。
* 测试用例: 页面加载完成后,js给Native传值,Native拿到后传值给js,页面打印日志
*/

/* 功能2
* Native调用js方法,执行完后回调
* 应用场景: Native返回按钮调用H5返回功能
* 测试用例: 项目js和wap公用js(不影响现有wap站js库,且调用灵活)
*/
// bridge.delayJsCallBack(0, ‘call back haha‘, function (msg) {
// bridge.alert(msg);
// });
//bridge.registerHandler(‘test‘, wapJs());
//test();

/* 功能3
* js调用Native方法,执行完后回调
* 应用场景: H5分享按钮调用Native分享功能
* 测试用例: alert
*/
var Btn = document.getElementById(‘btn‘);
Btn.ontouchstart = function(e){
e.preventDefault();
log("Calling Native handler testOC");
bridge.callHandler(‘testOC‘,{‘id‘: ‘123‘}, function(response) {
log(‘Got response from testOC callBack‘, response)
})
}
}
</script>
<button id=‘btn‘>js call Native</button>
<div id=‘log‘></div>
</body>
</html>

IOS:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>方法实现</title>
<meta name="author" content="m.gome.com.cn">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.effect.js"></script>
</head>
<body>
<h1>JS_OC交互测试</h1>
<script type="text/javascript">

    window.onerror = function(err) {
        log(err);
    }

    //给WebViewJavascriptBridgeReady事件注册一个Listener
    document.addEventListener(‘WebViewJavascriptBridgeReady‘, onBridgeReady, false)
    //事件的响应处理
    function onBridgeReady(event) {
        var bridge = event.bridge,
            uniqueId = 1;

        //日志记录
        function log(message, data) {
            var log = document.getElementById(‘log‘),
                el = document.createElement(‘div‘);
            el.className = ‘logLine‘;
            el.innerHTML = uniqueId++ + ‘. ‘ + message + (data ? ‘: ‘ + JSON.stringify(data) : ‘‘);
            if (log.children.length) {
                log.insertBefore(el, log.children[0]);
            }
            else {
                log.appendChild(el);
            }
        }

        log(‘WebView2Javascript Bridge Ready‘);

        /* 功能1
         * 页面加载完成后给Native传值
         * Native随时给js传值
         * 应用场景: H5页面传值给Native,动态生成顶栏标题。
         * 测试用例: 页面加载完成后,js给Native传值,Native拿到后传值给js,页面打印日志
        */
        bridge.send(‘Enemy spotted‘);
        //初始化操作,并定义默认的消息处理逻辑
        bridge.init(function(message) {
            log(‘Roger that, 3Q js!‘, message);
        })

        /* 功能2
         * Native调用js方法,执行完后回调
         * 应用场景: Native返回按钮调用H5返回功能
         * 测试用例: 项目js和wap公用js(不影响现有wap站js库,且调用灵活)
         */
        bridge.registerHandler(‘test‘, function(data, response) {
            log(‘JS handler [test] was called‘, data);
            response.respondWith({ ‘Javascript‘:‘Roger!‘ });
        })
        //bridge.registerHandler(‘test‘, wapJs());

        /* 功能3
         * js调用Native方法,执行完后回调
         * 应用场景: H5分享按钮调用Native分享功能
         * 测试用例: alert
         */
        var Btn = document.getElementById(‘btn‘);
        Btn.ontouchstart = function(e){
            e.preventDefault();
            log("Calling Native handler testOC");
            bridge.callHandler(‘testOC‘,{‘id‘: ‘123‘}, function(response) {
                log(‘Got response from testOC callBack‘, response)
            })
        }
    }
</script>
    <button id=‘btn‘>js call Native</button>
    <div id=‘log‘></div>
</body>
</html>
时间: 2024-10-11 02:30:21

App交互demo的相关文章

[email&#160;protected]指令与指令之间的交互demo

1.index.html: <!DOCTYPE HTML><html ng-app="app"><head>    <title>custom-directive</title>    <meta charset="utf-8">        <link rel="stylesheet" href="../css/bootstrap.css">

Android WebView与服务端交互Demo

使用WebView可以让Android端的开发工作大量减少,原因是在服务端可以为其做一定的工作,下面这个小Demo就实现了从Android客户端与服务端的交互.我这里客户端使用的工具是Eclipse,服务端使用MyEclipse. 实现效果图: 客户端: 点击登录按钮后,页面跳转,而在服务端Console中看到如下(只看最后一行即可): 可以看到服务端收到了客户端发过来的用户名:yao. 源代码: 客户端: activity_main: <RelativeLayout xmlns:android

iOS与H5界面JSBridge交互Demo

iOS与H5界面JSBridge交互Demo 最近公司需要加活动和新闻模块, boss看同样的设计稿, 我们iOS做一遍, 安卓做一遍, 小程序又做一遍; 所以决定用H5页面. 但我们Native不仅仅加载URL就行, 还需要跟H5有交互, 安卓大哥跟我慢慢填坑- 我用了一个library(GCWebviewJSBridge-iOS), github网址:github.com/wheying/GCWebviewJSBridge-iOS 他的Demo不太容易看得懂, 看得我一脸懵逼, 我写了一个简

【android官方文档】与其他App交互

发送用户到另外一个App YOU SHOULD ALSO READ 内容分享 One of Android's most important features is an app's ability to send the user to another app based on an "action" it would like to perform. For example, if your app has the address of a business that you'd

Android 6.0指纹识别App开发demo

在android 6.0中google终于给android系统加上了指纹识别的支持,这个功能在iPhone上早就已经实现了,并且在很多厂商的定制的ROM中也都自己内部实现这个功能了,这个功能来的有点晚啊.在google全新发布的nexus设备:nexus 5x和nexus 6p中都携带了一颗指纹识别芯片在设备的背面,如下图(图片来自网络): 笔者手中的设备就是图上的那台黑色的nexus 5x,话说这台机器很是好看呢!手感超棒! 废话不多说,下面我出一个指纹识别的demo app,并且详细说明怎么

APP交互

交互设计基本功!5个值得学习的APP交互方式http://www.uisdc.com/5-interactive-design-worth-learning 移动App交互设计10大趋势–你用到了吗?http://www.xueui.cn/experience/app-experience/10-mobile-app-trends-interaction-design.html APP设计经典:Pinterest的交互细节http://www.cyzone.cn/a/20140907/26266

如何用Axure快速制作APP交互原型

对于产品经理来说,熟练使用一些常用软件是一项十分必要的技能.其中,作为一个专业的快速原型设计工具,Axure RP无疑在产品人心中拥有一个难以撼动的地位.但就要PS一样,虽然足够专业,但同样也会存在使用灵活性的一些问题. 今天我们就谈谈,如何用Axure快速制作APP交互原型,不对,更准确的说法应该是:如何用Axure快速制作一份有水准的APP交互原型.作为一名优秀的产品人不仅要保证效率,也要保证质量才行. 首先抛出我的方法论:制作属于自己的元件库并要学会善用母版,熟悉APP设计规范并要有自己一

[email&#160;protected]指令与控制器之间的交互demo

1.index.html: <!DOCTYPE HTML><html ng-app="app"><head>    <title>custom-directive</title>    <meta charset="utf-8">        <link rel="stylesheet" href="../css/bootstrap.css">

APP开发设计应以人为本!浅谈APP交互设计原则

为什么APP开发设计需要原则?设计原则其实就是对一些设计过程中基于人类的认知规律对设计做出的一些指导性原则,并且对已经成为行业共识的设计经验做个总结,用来指导设计师界定问题.提高效率. 先就APP开发设计 http://www.czwew.com 常州紫竹云科技产品经理分享交互设计的时候最为大家所认可的几条设计原则:可学习性.一致性.简洁性.流畅性.及时反馈.除了这么六个?还有其他的吗?你放心,如果需要还有更多. 一.经常用的设计原则有哪些? 1.可学习性   目标用户在已有的知识和经验基础上,