Cp0204
Cp0204
  • 发布:2015-01-06 22:29
  • 更新:2024-03-27 16:54
  • 阅读:39885

通过native.js调用系统分享 - 示例

分类:Native.js

更新:目前plus.share已经实现了对系统分享的调用。已无必要使用Native.js调用系统分享。参考http://www.html5plus.org/doc/zh_cn/share.html#plus.share.sendWithSystem

============================================================================

先说明,我对原生只是有一点点了解。我的目的是教大家,希望大家也可以自己写native.js。
前几天我问为什么不集成 Intent.ACTION_SEND 分享,@DCloud_heavensoft 说官方刚好正在做。
今晚读了一下:
http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/114
http://www.dcloud.io/docs/api/zh_cn/android.shtml
对比了一下示例和网上找的原生代码,试着捣鼓,也捣鼓出来了。
二楼放代码,三楼放教程。


二楼不支持MD,那这里更新好了,直接拿去用就行了

function share(shareTip,shareText){  
var Context = plus.android.importClass("android.content.Intent");  
var Main = plus.android.runtimeMainActivity();  
var shareIntent=new Context(Context.ACTION_SEND);  
shareIntent.setType("text/plain");   
shareIntent.putExtra(Context.EXTRA_TEXT, shareText);  
Main.startActivity(Context.createChooser(shareIntent,shareTip));  
}  
//调用  
share('分享到...','要分享的文本');

带注释

function share(shareTip,shareText){  
    //导入Java类对象  
    var Context = plus.android.importClass("android.content.Intent");  
    //获取应用主Activity  
    var Main = plus.android.runtimeMainActivity();  
    //将类Context的这个行为(Action)ACTION_SEND,赋给shareIntent  
    var shareIntent=new Context(Context.ACTION_SEND);  
    //***以下两种写法是一样的  
    //plus.android.invoke(shareIntent,"setType","text/plain");  
    //plus.android.invoke(shareIntent,"putExtra",Context.EXTRA_TEXT,shareText);  
    //设置分享类型  
    shareIntent.setType("text/plain");   
    //设置分享文本  
    shareIntent.putExtra(Context.EXTRA_TEXT, shareText);  
    //***以上两种写法是一样的  
    //指定分享的包名  
    //shareIntent.setPackage('com.tencent.mm',);  
    Main.startActivity(Context.createChooser(shareIntent,shareTip));  
}

原生代码这样写,大家对比下,就发现不难懂,字符对应上

Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND);  
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");  
sendIntent.setType("text/plain");  
startActivity(Intent.createChooser(sendIntent,'send to...'));
24 关注 分享
DCloud_UNI_CHB DCloud_heavensoft 凯哥 小闹 深井冰_01 多串君 h5_学习者 有毒葡萄 LHQ 匿名 陈旭媛 蔡繁荣 鸿运当头 寻梦111 x***@sina.cn 雪之梦技术驿站 东方小浪哥 小新的狗叫小白 2***@qq.com 8***@qq.com 在职憨生 Roach sd791002 2***@qq.com

要回复文章请先登录注册

DCloud_heavensoft

DCloud_heavensoft

另外更多Native.js示例见这里:http://ask.dcloud.net.cn/docs/#http://ask.dcloud.net.cn/article/114
2015-01-07 08:03
DCloud_heavensoft

DCloud_heavensoft

太赞了,感谢你的贡献,200分送上。
希望再把图片分享和iOS分享的例子搞出来,继续送分!
2015-01-07 07:43
Cp0204

Cp0204 (作者)

@DCloud_App_Array
2015-01-06 22:39
Cp0204

Cp0204 (作者)

```javascript
function share(shareTip,shareText){
var Context = plus.android.importClass("android.content.Intent");
var Main = plus.android.runtimeMainActivity();
var shareIntent=new Context(Context.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Context.EXTRA_TEXT, shareText);
Main.startActivity(Context.createChooser(shareIntent,shareTip));
}
```
2015-01-06 22:32