帖子
帖子
用户
博客
课程
12
返回列表 发新帖
1
帖子
0
勋章
380
Y币
结合事件监听和execscript,思路确实很巧妙,赞一个;
8
帖子
0
勋章
1万+
Y币
盖帽小王子 发表于 2016-1-25 00:11
结合事件监听和execscript,思路确实很巧妙,赞一个;

感谢支持
5
帖子
0
勋章
65
Y币
版主   你好  
我是新手   你这个demo  我复制了一份 没出来效果   大神 求指导

http://127.0.0.1:8020/test/test.html
8
帖子
0
勋章
1万+
Y币
apiWoNiu 发表于 2016-5-27 16:32
版主   你好  
我是新手   你这个demo  我复制了一份 没出来效果   大神 求指导

需要通过真机调试或者云编译才能看到效果
5
帖子
0
勋章
65
Y币
yyyfx 发表于 2016-5-31 09:11
需要通过真机调试或者云编译才能看到效果

知道了   我去试试  谢谢您的回答
41
帖子
1
勋章
211
Y币
api.openFrame({
        name:"http",
        url:''+url+'',
        rect:{x:0,y:headerH, w:'auto',h:frameH},
        bounces:false,
        hScrollBarEnabled:false,
        vScrollBarEnabled:false,
        allowEdit:true,
        scaleEnabled:true,
        progress:{type:'default',title:'加载中....',text:'请耐心等待',color:'#FFFFFF'}
    },function(ret,err){
        if(err){
            api.toast({msg:err.msg,location:'middle'})
        }
    })

//获取链接函数
function getFrameUrl() {
       var script = "api.sendEvent({name: 'getUrl', extra: {url: window.location.href}});";
        api.execScript({
            frameName: 'http',
            script: script
        });         
}

当为 www**.** 时 点击百度的内容后,安卓,IOS可以获取到最新的链接地址,但当我把url换成 http://www**.**/product-list/4?n ... 1&sort=featured,我点击单个商品到详情页面后,安卓能获取最新链接地址,IOS不能,请问这个应该怎么处理呢

5
帖子
0
勋章
2882
Y币
这个例子不是一般的好,是非常好!
15
帖子
0
勋章
29
Y币
感谢楼主,,有用,极其有用!!
所以,如何自动执行啊,
<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
    <title>test</title>
    <link rel="stylesheet" type="text/css" href="./css/api.css"/>
    <link rel="stylesheet" type="text/css" href="./css/style.css"/>
    <style>
        #header {
            height: 44px;            
            line-height: 44px;         
            background-color: green;
            position: relative;
        }
        .back {
            background-color: white;
            display: inline-block;
            margin-left: 10px;         
            padding: 5px 10px;
        }
        .action {                     
            background-color: white;            
            margin: 10px 10px 0 0;
            padding: 5px 10px;
            float: right;
        }
    </style>
</head>
<body onload="getFrameUrl()">
    <div id="header">
        <button class="back" tapmode onclick="api.closeWin();">返回</button>
        <button class="action" tapmode onclick="getFrameUrl();">获取url</button>
    </div>
</body>
<script type="text/javascript" src="script/api.js"></script>
<script type="text/javascript" src="script/jquery.min.js"></script>
<script type="text/javascript">
    apiready = function() {
        var header = $api.byId("header");
        $api.fixIos7Bar(header);
        var headerPos = $api.offset(header);

        api.addEventListener({
            name: 'getUrl'
        }, function(ret, err) {
            if(ret && ret.value){
                var value = ret.value;
                api.alert({msg: value.location.pathname});
                var about=JSON.stringify({msg: value.location.pathname});
                    alert(about);

                if(about=='{"msg":"/about"}'){
                    alert("我去");
                    api.openFrame({
                        name: 'my',
                        url: 'my.html',
                       rect: {
                            x: 0,
                            y: headerPos.h,
                            w: 'auto',
                            h: 'auto'
                        }
                    });
                }
            }            
        });

        api.openFrame({
            name: 'baidu',
            url: 'http://**.**',
           rect: {
                x: 0,
                y: headerPos.h,
                w: 'auto',
                h: 'auto'
            }
        });
        window.onload=ceshi();
        api.setFrameClient({
            frameName:api.pageParam.name
            },function(ret){
                            if(0 == ret.state){//frame开始加载
                                  var url = ret.url;
                                  alert('frame loading start: ' + url);
                            }else if(1 == ret.state){//frame加载进度发生变化
                                  var p = ret.progress;
                                  alert('frame loading: ' + p);
                            }else if(2 == ret.state){//frame结束加载
                                  var url = ret.url;
                                  alert('frame loading finish: ' + url);
                            }else if(3 == ret.state){//frame标题发生变化
                                  alert('frame loading ok: ' + ret.title);
            }
        });

    };
    $(document).ready(function() {
        function getFrameUrl() {
        var script = "api.sendEvent({name: 'getUrl', extra: {location: window.location}});";
        api.execScript({
            frameName: 'baidu',
            script: script
        });        
        }
    });
    function getFrameUrl() {
        var script = "api.sendEvent({name: 'getUrl', extra: {location: window.location}});";
        api.execScript({
            frameName: 'baidu',
            script: script
        });        
    }
    function ceshi(){
        var script = "api.sendEvent({name: 'getUrl', extra: {location: window.location}});";
        api.execScript({
            frameName: 'baidu',
            script: script
        });  
    }
</script>
我完全被搞晕了,不能不点击按钮直接自动弹出url 吗,怎么都做不到,一个小功能恶心我三个小时,就是不能实现自动弹出窗口,非要我点击来实现,重点是实验了好多方法,全都不行,点击点击点击点击,哇,心态彻底被这玩意搞炸了,无论如何都跳不开这点击事件吗
15
帖子
1
勋章
3379
Y币

用setTimeout,但是这个貌似只有安卓有效,ios的安全机制会过滤setTimeout中的模拟用户操作。
12
您需要登录后才可以回帖 登录

本版积分规则