代码拉取完成,页面将自动刷新
参数 | 说明 | 是否必填 | 默认值 |
---|---|---|---|
debug | 是否打印调用过程中日志 | 否 | false |
setting | 网页设置,在原生加载完后就会读取并回调到onPageSetting(String setting) | 否 | 无 |
例子
jDsSdk.config({
debug: true
});
jDsSdk.config({
debug: true,
setting: {
title: "大圣科技",
fitsStatusBar: false,
autoReolad: true,
shareWeb: {
url: 'https://www.baidu.com',
title: "baidu",
thumb: "https://www.baidu.com/img/pc_cc75653cd975aea6d4ba1f59b3697455.png",
desc: "分享测试",
channels: ['FRIEND', 'WEIXIN'],
extra: {
id: 1,
xx: "123456"
},
},
}
});
网页setting参数,可以根据自己需求定义(以下为参考)
Setting 参数 | 说明 | 类型 |
---|---|---|
title | 网页标题 | string |
fitsStatusBar | 补充刘海屏 | boolean |
autoReolad | 其他页面回来后自动刷新 | boolean |
shareWeb | 分享信息,参考分享组件 | object |
参数 | 说明 | 是否必填 | 默认值 |
---|---|---|---|
pluginMethod | 插件方法(xplugin.xmethd) | 是 | 无 |
params | 调用参数 | 否 | 无 |
callback | 回调方法 | 否 | 无 |
参数 | 说明 | 类型 | 描述 |
---|---|---|---|
code | 状态 | string | 0:成功,1: IO异常,2: 无插件 3:无方法 4:json异常 5: 其他异常 |
message | 业务数据 | 数据类型根据具体业务定义 | |
msg | 异常信息 | string | 成功返回ok |
例子
jDsSdk.invoke('plugin.method', {
age: 10086,
name: 'gukeming'
}, function(result) {
console.log("页面调用结果", JSON.stringify(result));
});
jDsSdk.getAppVersion();
说明:通过在原生userAgent中的增加DSApp/1.0.0来传递app版本号,如果版本号不存在就不是在app内嵌的webview中
jDsSdk.getAppParam('token');
说明:必须在页面加载完成后才能获取
jDsSdk.getQueryParam('name');
jDsSdk.getQueryParams()
jDsSdk.setReqInterceptor(function(req) {
console.log('请求拦截', JSON.stringify(req));
return req;
});
jDsSdk.setResInterceptor(function(res, req) {
console.log('返回拦截拦截', JSON.stringify(res), JSON.stringify(req));
alert('拦截结果' + JSON.stringify(res));
return res;
});
说明: 如果返回拦截无返回值,那么将不会再继续回调到业务层
jDsSdk.onReady(function(){
alert('jDsServiceReady');
})
1、原生支持打电话
<a href="tel:18819272037">打电话</a>
2、邮件支持
<a href="mailto:gukeming@ds.cn">发送邮件</a>
3、文件和图片选择
<p>
<img class="img" width="100" height="100" id="previewimg">
</p>
<input class="select" type="file" accept="image/*" id="picfile" name="选择图片">
//图片选择
<script>
document.querySelector('.select').addEventListener('change', function(e){
var URL = window.URL || window.webkitURL;
document.getElementById('previewimg').src = URL.createObjectURL(this.files[0]);
});
</script>
说明:图片选择支持从拍照和相机选择,必须设置为image/*,如果不设置。将默认选择文件
在web中定义method方法
jDsSdk.addNativeCallback("methodName", function(params) {
alert("原生调用js 参数" + params);
return "js返回数据" + params;
});
JSCallbackContext.callJSMethod(String method, String params, final JsValueCallback jsValueCallback)
数 | 说明 | 是否必填 | 默认值 |
---|---|---|---|
method | js名称 | 是 | 无 |
params | 调用js参数 | 否 | 无 |
jsValueCallback | js调用返回 | 否 | 无 |
使用例子:
callbackContext.callJSMethod("methodName");
callbackContext.callJSMethod("methodName", new JSCallbackContext.JsValueCallback() {
@Override
public void onValue(String value) {
}
});
callbackContext.callJSMethod("methodName", "123", new JSCallbackContext.JsValueCallback() {
@Override
public void onValue(String value) {
}
});
JSService.setLogLevel(JSLog.DEBUG);
public class DeviceInfoPlugin extends JSPlugin {
private static final String TAG = "DeviceInfoPlugin";
public static final String TEST_METHOD = "testMethod";
@Override
protected void onInitialize() {
super.onInitialize();
}
@Override
public boolean execute(String method, JSParams args, JSCallbackContext callbackContext) throws JSONException {
Log.d("JSPlugin", "method==" + method);
Log.d("JSPlugin", "args==" + args.jsonParamForkey("name"));
if(TEST_METHOD.equals(method)) {
JSONObject json = new JSONObject();
json.put("method",method);
json.put("name",args.jsonParamForkey("name"));
//返回js调用处
callbackContext.success(json);
return true;
}
return false;
}
@Override
public void onDestroy() {
super.onDestroy();
}
}
方法 | 说明 | 是否必填 | 默认值 |
---|---|---|---|
success | 成功回调 | ||
error | 错误或失败回调 | ||
callJSMethod | 原生调用js并返回结果 |
JSService.registerPlugin(String pluginName, Class<? extends JSPlugin> clazz);
参数 | 说明 | 是否必填 | 默认值 |
---|---|---|---|
pluginName | 插件名称 | 是 | 无 |
Class | 插件类 | 是 | 无 |
JSService.registerPlugin("device", DeviceInfoPlugin.class);
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。