autobots-lib
Version:
汽车人基础库
1 lines • 4.09 kB
JavaScript
;
import React,{Component} from 'react';
import ReactNative from 'react-native';
import Native from '../native';
const {
ToastAndroid,
Platform,
DeviceEventEmitter,
requireNativeComponent,
View
} = ReactNative;
// let vpn = {
// /**
// * vpn连接
// * @param username 用户名
// * @param password 密码
// * @param serverAddress 服务器地址
// * @param sharedSecret 共享密钥
// * @param remoteId 远程id
// * @param localId 本地id
// * @param preferenceTitle vpn配置标题
// */
// connectVpn:(username,password,serverAddress,sharedSecret,remoteId,localId,preferenceTitle)=> {
// let u = 'autobots://rn/connectVpn?username=' + username + '&password=' + password + '&serverAddress=' + serverAddress + '&sharedSecret=' + sharedSecret + "&remoteId=" + remoteId + "&localId=" + localId + "&preferenceTitle=" + preferenceTitle;
// Native.callNative(u);
// },
//
// /**
// * 断开VPN
// */
// disconnectVpn:()=>{
// let u = 'autobots://rn/disconnectVpn';
// Native.callNative(u);
// },
//
// /**
// * 获取VPN状态
// */
// getVpnStatus:(callback)=>{
// let u = 'autobots://rn/getVpnStatus';
// Native.callNative(u,(result,data)=>{
// if(callback){
// callback(result,data);
// }
// });
// },
// /**
// * 给原生传递包名
// */
// judgebypackage:(packagename)=>{
// let u = 'autobots://rn/judgebypackage?packagename='+packagename;
// Native.callNative(u);
// }
// }
class Vpn extends Component {
connectVpn(username,password,serverAddress,sharedSecret,remoteId,localId,preferenceTitle){
let u = 'autobots://rn/connectVpn?username=' + username + '&password=' + password + '&serverAddress=' + serverAddress + '&sharedSecret=' + sharedSecret + "&remoteId=" + remoteId + "&localId=" + localId + "&preferenceTitle=" + preferenceTitle;
Native.callNative(u);
}
disconnectVpn(){
let u = 'autobots://rn/disconnectVpn';
Native.callNative(u);
}
getVpnStatus(callback){
let u = 'autobots://rn/getVpnStatus';
Native.callNative(u,(result,data)=>{
if(callback){
callback(result,data);
}
});
}
judgebypackage(packagename,callback){
let u = 'autobots://rn/judgebypackage?packagename='+packagename;
Native.callNative(u,(result,data)=>{
if(callback){
callback(result,data);
}
});
}
openProgectByPath(packagename,activityname,parame,callback){
let u = 'autobots://rn/openappbyname?packagename='+packagename+'&activityname='+activityname+'¶me='+parame;
Native.callNative(u,(result,data)=>{
if(callback){
callback(result,data);
}
});
}
doVpnApp(action,callback){
let u = 'autobots://rn/doVpnApp?action='+action;
Native.callNative(u,(result,data)=>{
if(callback){
callback(result,data);
}
});
}
componentWillMount() {
var that = this;
function cb_android(e:Event){
var data = JSON.parse(e.result);
if(that.props.onVpnStatus){
that.props.onVpnStatus(data);
}
}
function cb_ios(p){
if(that.props.onVpnStatus){
that.props.onVpnStatus(p);
}
}
if(Platform.OS == 'android'){
this.vpnlistener = DeviceEventEmitter.addListener('react_event_vpnStatus',cb_android);
}else {
this.vpnlistener = DeviceEventEmitter.addListener("react_event_vpnStatus",cb_ios);
}
}
componentWillUnmount() {
if(this.vpnlistener!=null){
this.vpnlistener.remove();
this.vpnlistener = null;
}
}
render() {
return(<View/>);
}
}
module.exports = Vpn;