mui开发app,mui搜索框触发手机搜索按键方法,分享功能的实现

1. 搜索框的属性的设置。


要虚拟键盘显示“搜索”二字,需满足以下两个条件:
(1)设置input属性 type=‘search’
(2)input需在form表单中。
  • 1
  • 2
  • 3
  • 4

html代码

<form action="">
    <div class="mui-input-row mui-search">
        <input id="search" type="search" class="mui-input-clear" placeholder="输入关键字搜索">
    </div>
</form>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
若是实现点击"搜索",实现搜索事件,需要对按键进行监听。注意要点:
(1)监听事件类型“keypress”
(2)event.keyCode == "13"
(3)event.preventDefault(); // 阻止默认事件---阻止页面刷新(表单提交)
  • 1
  • 2
  • 3
  • 4
  • 5

js代码

document.getElementById("search").addEventListener("keypress",function(event) {
    if(event.keyCode == "13") {
        document.activeElement.blur();//收起虚拟键盘
        toSearch();//TODO 完成搜索事件
        event.preventDefault(); // 阻止默认事件---阻止页面刷新
    }
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

2.分享功能的实现

app中有一个分享功能,将开发流程及代码做以下记录。

1.申请第三方APPKEY,具体流程参考: 
新浪微博appkey申请步骤 
腾讯微博appkey申请方法 
微信appkey申请方法

2.介绍 
这边分享类型有:微信好友、朋友圈、新浪微博、复制链接。

3.代码 
第一步:获取分享服务。(涉及到plus对象的都要写在mui.plusReady方法里面)

/**
 * 获取分享服务
 */
function updateSerivces() {
    plus.share.getServices(function(s) {
        shares = {};
        for(var i in s) {
            var t = s[i];
            shares[t.id] = t;
        }
        //微信服务
        weixinss = shares['weixin'];
        //新浪服务
        sinaweiboss = shares['sinaweibo'];
        weixinShare ={
            title: '微信朋友圈',
            s: weixinss,
            x: 'WXSceneTimeline'
        }
        weixinShareSession ={
            title: '微信好友',
            s: weixinss,
            x: 'WXSceneSession'
        }
        sinaweibo = {
            title: '新浪微博',
            s: sinaweiboss
        }
    }, function(e) {
        _.toast("获取分享服务列表失败:" + e.message);
    });
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
    第二步:触发分享操作的编码
    比如:
  • 1
  • 2
  • 3
//点击微信好友分享
doc.querySelector(".m-btn.btnweixin").addEventListener("tap",function(){
    shareAction(weixinShareSession,false);
});
//点击朋友圈分享
doc.querySelector(".m-btn.btnpengyouquan").addEventListener("tap",function(){
    shareAction(weixinShare,false);
});
//点击新浪微博分享
doc.querySelector(".m-btn.btnsina").addEventListener("tap",function(){
    shareAction(sinaweibo,false);
});
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
/**
 * 分享操作
 * @param {JSON} sb 分享操作对象s.s为分享通道对象(plus.share.ShareService)
 * @param {Boolean} bh 是否分享链接
 */
function shareAction(sb, bh) {
    if(!sb || !sb.s) {
        _.toast("无效的分享服务!");
        return;
    }
    var msg = {
        content: title_share,//分享的标题
        href:href,
        extra: {
            scene: sb.x
        }
    };
    // 发送分享
    if(sb.s.authenticated) {
        shareMessage(msg, sb.s);
    } else {
        sb.s.authorize(function(){
            shareMessage(msg, sb.s);
        }, function(e) {
            console.log(e.code);
            _.toast("认证授权失败");
        });
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
    第三步:发送分享消息方法的编写
  • 1
  • 2
/**
* 发送分享消息
 * @param {JSON} msg
 * @param {plus.share.ShareService} s
 */
function shareMessage(msg, s) {
    s.send(msg, function() { 
        _.toast("分享到\"" + s.description + "\"成功! ");
    }, function(e) {
        _.toast("分享到\"" + s.description + "\"失败: ");
    });
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

其中有一个复制链接部分,是使用native.js调用原生接口实现。

//android
function copyToClipAndroid(val) {
    var Context = plus.android.importClass("android.content.Context");
    var main = plus.android.runtimeMainActivity();
    var clip = main.getSystemService(Context.CLIPBOARD_SERVICE);
    plus.android.invoke(clip, "setText", val);
    mui.toast("复制成功");
}
//ios
function copyToClipIos(val) {
    var UIPasteboard = plus.ios.importClass("UIPasteboard");
    var generalPasteboard = UIPasteboard.generalPasteboard();
    // 设置/获取文本内容:
    generalPasteboard.plusCallMethod({
        setValue: val,
        forPasteboardType: "public.utf8-plain-text"
    });
    generalPasteboard.plusCallMethod({
        valueForPasteboardType: "public.utf8-plain-text"
    });
    mui.toast("复制成功");
}
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用MUI框架实现搜索功能的示例: HTML代码: ```html <header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left"></a> <h1 class="mui-title">Search</h1> </header> <div class="mui-content"> <form class="mui-input-group"> <div class="mui-input-row"> <input type="search" id="searchInput" class="mui-input-clear" placeholder="Search..."> </div> </form> <ul class="mui-table-view"> <li class="mui-table-view-cell">Apple</li> <li class="mui-table-view-cell">Banana</li> <li class="mui-table-view-cell">Cherry</li> <li class="mui-table-view-cell">Dragonfruit</li> <li class="mui-table-view-cell">Elderberry</li> <li class="mui-table-view-cell">Fig</li> </ul> </div> ``` JS代码: ```javascript mui.init(); const searchInput = document.getElementById('searchInput'); const list = document.querySelector('.mui-table-view'); const items = list.getElementsByTagName('li'); searchInput.addEventListener('input', function () { const searchValue = this.value.toLowerCase(); for (let i = 0; i < items.length; i++) { const item = items[i]; const text = item.textContent.toLowerCase(); if (text.indexOf(searchValue) === -1) { item.classList.add('mui-hidden'); } else { item.classList.remove('mui-hidden'); } } }); ``` 这段代码同样实现了一个简单的搜索功能,在MUI框架下使用了MUI的样式类来控制显示或隐藏。其,`mui.init()`是MUI的初始化方法,`input`事件监听用户在输入框输入内容,`classList`属性用于添加或移除样式类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值