骁骑
骁骑
  • 发布:2016-01-12 16:27
  • 更新:2020-10-16 10:44
  • 阅读:28620

Android 平台5+SDK接口说明

分类:5+ SDK

查看Android平台5+SDK API参考手册请点击

初始化SDK

initSDK(ICore core)

说明:
初始化SDK, SDK所有接口必须在初始化之后才可以调用
参数:

  • core(ICore ) 5+内核对象

示例

    @Override  
    public void onCoreReady(ICore coreHandler) {  
        try {  
            SDK.initSDK(coreHandler);  
            SDK.requestAllFeature();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }

SDK集成使用方法

IApp startWebApp(Activity activity,String appBasePath,String startArgs,IWebviewStateListener listener,IOnCreateSplashView ocs)

说明:
创建并启动5+WebApp对象
参数:

  • activity(Activity) Activity对象
  • appBasePath(String) 移动应用所在的目录
  • startArgs(String) 应用启动时传递的参数
  • listener(IWebviewStateListener) Webview事件监听对象,用来监听应用的首页面加载状态
  • ocs(IOnCreateSplashView) Splash事件监听对象,用来监听splash页面的加载和关闭事件

示例

    public void onCoreInitEnd(ICore coreHandler) {  

        //创建默认webapp,  
        String appBasePath = "/apps/HelloH5";//表示 file:///android_asset/apps/HBuilder  
        String args = "{url:'http://www.baidu.com'}";//设置启动参数  

        app = SDK.startWebApp(activity,appBasePath, args, new IWebviewStateListener() {  
            @Override  
            public Object onCallBack(int pType, Object pArgs) {  

                switch (pType) {  
                case IWebviewStateListener.ON_WEBVIEW_READY:  
                    //准备完毕之后添加webview到显示父View中,设置排版不显示状态,避免显示webview时,html内容排版错乱问题  
                    View view = ((IWebview)pArgs).obtainApp().obtainWebAppRootView().obtainMainView();  
                    view.setVisibility(View.INVISIBLE);  
                    rootView.addView(view, 0);  
                    break;  
                case IWebviewStateListener.ON_PAGE_STARTED:  
                    break;  
                case IWebviewStateListener.ON_PROGRESS_CHANGED:  
                    break;  
                case IWebviewStateListener.ON_PAGE_FINISHED:  
                    //页面加载完毕,设置显示webview  
                    app.obtainWebAppRootView().obtainMainView().setVisibility(View.VISIBLE);  
                    break;  
                }  
                return null;  
            }  
        },this);  
    }

IWebview createWebview(Activity activity,String pagePath,String basePath,String docPath,String appid, String appName,IWebviewStateListener listener)

说明:
创建一个支持5+API的Webview对象
参数:

  • activity(Activity) Activity对象
  • pagePath(String) 页面路径
  • basePath(String) 应用的默认路径
  • docPath(String) 应用的doc目录路径
  • appid(String) 应用的appid
  • appName(String) 应用名称
  • listener(IWebviewStateListener) 加载事件监听器

示例:

public void onCoreInitEnd(ICore coreHandler) {  
        //设置单页面集成的appid  
        String appid = "test1";  
        // 单页面集成时要加载页面的路径,可以是本地文件路径也可以是网络路径  
        String url = "file:///android_asset/apps/H5Plugin/www/index.html";  
        webview = SDK.createWebview(activity, url, appid, new IWebviewStateListener() {  
            @Override  
            public Object onCallBack(int pType, Object pArgs) {  
                switch (pType) {  
                case IWebviewStateListener.ON_WEBVIEW_READY:  
                    // 准备完毕之后添加webview到显示父View中,设置排版不显示状态,避免显示webview时,html内容排版错乱问题  
                    ((IWebview) pArgs).obtainFrameView().obtainMainView().setVisibility(View.INVISIBLE);  
                    SDK.attach(mRootView, ((IWebview) pArgs));  
                    break;  
                case IWebviewStateListener.ON_PAGE_STARTED:                   
                    break;  
                case IWebviewStateListener.ON_PROGRESS_CHANGED:                   
                    break;  
                case IWebviewStateListener.ON_PAGE_FINISHED:                      
                    // 页面加载完毕,设置显示webview  
                    webview.obtainFrameView().obtainMainView().setVisibility(View.VISIBLE);  
                    break;  
                }  
                return null;  
            }  
        });  

    }

IWebview createWebview(Activity activity,String pagePath,String appid,IWebviewStateListener listener)

说明:
创建一个支持5+API的Webview对象
参数:

  • activity(Activity) Activity对象
  • pagePath(String) HTML页面的路径
  • appid(String) 默认应用的APPID
  • listener(IWebviewStateListener) 页面加载事件监听器

WebApp相关方法

void stopWebApp(IApp app)

说明:
停止一个正在运行的5+WebApp
参数:
app(IApp) 正在运行的WebAPP对象

String obtainCurrentRunnbingAppId()

说明:
获取当前正在运行的5+WebApp的APPID

IApp obtainCurrentApp ()

说明:
获取到当前在前台运行的5+Webapp对象

页面相关方法

ArrayList obtainAllIWebview()

说明:
获取运行应用的Webview对象的集合

IWebview obtainWebview(String appid,String webviewId)

说明:
根据APPID和WebviewID获取到指定的Webview对象
参数:

  • appid(String) 要获取应用的APPID
  • webviewId(String) 获取应用内页面的ID

IWebview obatinFirstPage(IApp app,IWebviewStateListener listener)

说明:
获取指定应用app的首页面Iwebview对象
参数:

  • app(IApp) IApp对象
  • listener(IWebviewStateListener) 应用首页面的加载状态的监听

void closeWebView(IWebview webview)

说明:
关闭指定IWebview页面
参数:

  • webview(IWebview)

设置可使用的5+API权限

void requestAllFeature()

说明:
向5+基座申请全部扩展API调用能力
示例

public void onCoreReady(ICore coreHandler) {  
        try {  
            SDK.initSDK(coreHandler);  
            SDK.requestAllFeature();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }

void requestFeature(String mainFeatureName,String subFeatrureName,boolean autoBoot)

说明
单独设置可以使用的API特征名
参数

  • mainFeatureName(String) JS 特征名称
  • subFeatrureName(String) JS特征二级名称
  • autoBoot(boolean) 是否基座自动启动

示例

requestFeature("Share","share-weixin",false);

注册新扩展插件

void registerJsApi(String featureName,String className,String jsContent)

说明:
向5+SDK注册一个新的扩展API
参数:

  • featureName(String) 扩展插件的JS功能名称
  • className(String) 扩展插件的原生类名
  • jsContent(String) 扩展插件的JS代码

示例

    // 注册新的5+扩展API  
    private void regNewJsAPI() {  
        // 扩展插件的JS特征名称  
        String featureName = "T";  
        // 为处理扩展Feature的接收类全名称  
        String className = "com.HBuilder.integrate.webview.WebViewMode_FeatureImpl";  
        // content 为扩展Feature而创建的js代码  
        String content = "(function(plus){function test(){return plus.bridge.execSync('T','test',[arguments]);}plus.T = {test:test};})(window.plus);";  
        // 注册新的扩展方法  
        SDK.registerJsApi(featureName, className, content);  
    }  
1 关注 分享
Trust

要回复文章请先登录注册

骁骑

骁骑 (作者)

回复 9***@qq.com :
http://ask.dcloud.net.cn/article/103
2016-07-21 11:56
9***@qq.com

9***@qq.com

有demo工程下载吗? 看这些内容搭建费劲了。??
2016-07-20 22:18
蔡邵鑫

蔡邵鑫

5+SDK 这里的SDK是5+的SDK 只是把它集成到android里 并不是把别的SDK集成到Hbuilder 里 是这样理解吗 怎么用FaceBook的SDK集成到Hbuilder 里
2016-07-19 10:41