求权力的权力游戏第二季第四集七季第四集百度云资源

微信浏览器通过js复制文本功能_问答_ThinkSAAS
微信浏览器通过js复制文本功能
微信浏览器通过js复制文本功能
如题,求大神指导?
我在移动端页面想要实现一个【复制】按钮,点击复制可以复制文本内容到手机剪切板?
在微信的聊天界面可以通过点击文本后,弹出个功能列表“【复制】,【转发】。。。”,
点击复制后可以随时粘贴,请问它这个是怎么实现的?
微信的复制转发和你所说的“页面”复制是两码事,目前别说完美了,连基本可用的方案也没有。
还是换方案吧,比如给个input或者其他方式提示用户选中复制。
印象中 只有桌面端IE允许用js操作剪贴板 其余的浏览器都是弹个框帮你选中 自己按一下ctrl+c
移动端的复制、查词什么那是rom的功能 跟js没关啊
是一个轻量级的工具,基于HTML5的Selection和execCommand API 实现将文本复制到剪切板的功能。题主可以了解一下,看能不能满足需求
添加你想要问的问题
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信1094人阅读
移动开发(16)
之前做的微信分享活动,链接和内容是写死在客户端的,现在要改成能够从后台获取动态数据的版本。
活动页面如下:
点击立即邀请按钮,跳转到客户端的登录界面。
1.剪贴板的使用
点击复制按钮,讲文本框中的链接复制到系统的剪贴板中。
方法很简单,在此贴出:
webview声明接口:
web.addJavascriptInterface(new JavaScriptToMobileInterface(),&JavaScriptToMobileInterface&);
JavaScriptToMobileInterface接口的实现:
final class JavaScriptToMobileInterface {
JavaScriptToMobileInterface() {
@JavascriptInterface
public String getUserId() {
Log.d(&powinandroid&, &getUserId() method is invoked&);
return Constant.userId;
@JavascriptInterface
public String getType(){
Log.d(&powinandroid&, &getType() method is invoked&);
return Constant.INTERACTIVE_APPTYPE;
@JavascriptInterface
public void copy(String string){
Log.d(&powinandroid&, &copy() method is invoked&);
ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText(&shareURL&,string);
clipboard.setPrimaryClip(clip);
tip(&复制链接成功!&);
然后再前端页面中,编写js方法判断有没有返回userId(即有没有登录)。若是没有登录(即userId为空),则执行confirm方法,跳转到登录界面:
public boolean onJsConfirm(WebView view, String url, String message,
final JsResult result) {
Intent loginIntent = new Intent(mContext, LoginActivity.class);
mContext.startActivity(loginIntent);
result.cancel();
登录之后会直接显示链接和复制按钮,复制的方法在上面的代码中能看到。
看下官方指南:/intl/zh-cn/guide/topics/text/copy-paste.html
中文版:/mengdd/p/3572316.html
注意两点:
1.导包的时候
API 11之前: android.text.ClipboardManager
API 11之后: android.content.ClipboardManager
2.剪贴板每次仅会持有一个clip对象,当应用放另一个clip对象进来时,前一个就消失了。
其实这里我们用到的功能很简单,甚至一行代码就够用了:
clipboard.setText(&String&);
就可以了,但是setText这个方法已经不被官方推荐使用了,所以还是老老实实的用ClipData吧。
2.微信分享的完善
现在我们从接口获得微信分享的缩略图,链接,标题和描述,然后将这四个属性放在静态全局变量中,在点击下图按钮时,进行分享。
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.sharetowx:
wxshare.SharedToWX(Constant.WXSHARE_TITLE, Constant.WXSHARE_DESCRIPTION, false, Constant.WXSHARE_WEBURL,Constant.WXSHARE_PICURL);
sharebody.dismiss();
case R.id.sharetowz:
wxshare.SharedToWX(Constant.WXSHARE_TITLE, Constant.WXSHARE_DESCRIPTION, true, Constant.WXSHARE_WEBURL,Constant.WXSHARE_PICURL);
sharebody.dismiss();
case R.id.sharecancel:
sharebody.dismiss();
在官方给出的demo中,是没有图片url参数的,官方demo用的是本地图片,那么我们就进行改造,添加一个参数,放入图片url。
那么SharedToWX()这个方法也要进行相应的修改,在取得网络图片之后再进行分享。
由于在主线程中不能发起网络请求,所以我们要new一个。
* 分享到微信好友/朋友圈
public void SharedToWX(String title, String description, Boolean isShareZone, String weburl,String picUrl){
webpage = new WXWebpageObject();
webpage.webpageUrl =
msg = new WXMediaMessage(webpage);
msg.title =
msg.description =
this.isShareZone=isShareZ
this.picUrl=picU
getHttpBitmap();
public void getHttpBitmap() {
new Thread(){
public void run() {
// 获得连接
HttpURLConnection conn = (HttpURLConnection) new URL(picUrl)
.openConnection();
// 设置超时时间为6000毫秒,conn.setConnectionTiem(0);表示没有时间限制
conn.setConnectTimeout(6000);
// 连接设置获得数据流
conn.setDoInput(true);
// 不使用缓存
conn.setUseCaches(false);
// 这句可有可无,没有影响
conn.connect();
// 得到数据流
InputStream is = conn.getInputStream();
// 解析得到图片
thumb = BitmapFactory.decodeStream(is);
// 关闭数据流
is.close();
handler.sendEmptyMessage(HandlerCASE.MSG_DONE);
} catch (Exception e) {
e.printStackTrace();
}.start();
Handler handler=new Handler(){
public void handleMessage(Message message) {
// TODO Auto-generated method stub
super.handleMessage(message);
switch (message.what) {
case HandlerCASE.MSG_DONE:
if (null==thumb) {
thumb = BitmapFactory.decodeResource(mcontext.getResources(), R.drawable.icon_share);
msg.thumbData = bmpToByteArray(thumb, true);
Log.d(&getHttpBitmap&, &msg.thumbData:&+msg.thumbData.length);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction(&webpage&);
req.message =
req.scene = isShareZone ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneS
mapi.sendReq(req);
显然能看到,步骤就是:获得数据流,转成Bitmap,bitmap再转成ByteArray,放到msg.thumbData中。如果没取到的话,那就还是用本地的图片。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:30492次
排名:千里之外
原创:19篇
评论:13条
(1)(4)(1)(1)(2)(1)(3)(2)(2)(5)(1)

我要回帖

更多关于 权力的游戏第四集 的文章

 

随机推荐