帖子
帖子
用户
博客
课程

SuperWebview最简使用流程

YonBuilder移动开发 2022-4-22 10:03 1025人浏览 40人回复
原作者: 常山赵子云 收藏 邀请
摘要

统一解答:动态编译的SuperWebview SDK,无论在基于Eclipse的adt-bundle还是在Android Studio这两个开发工具中都是通用的,同时Android Studio本身也提供直接导入Eclipse项目的功能,所以不熟悉Android Studio使用的 ...

统一解答:动态编译的SuperWebview SDK,无论在基于Eclipse的adt-bundle还是在Android Studio这两个开发工具中都是通用的,同时Android Studio本身也提供直接导入Eclipse项目的功能,所以不熟悉Android Studio使用的开发者,建议先通过网上的一些Android Studio使用方面的公开教程进行熟悉后使用。
附件为Android版本的如何将SuperWebview作为独立的View使用、如何在Fragment中使用的demo。


一、开发

1)、网站控制台新建app项目
2)、切换到“模块”界面勾选你需要的模块(不需要则略过)
3)、切换到“动态生成”界面,勾选你需要的平台,动态编译SDK包
4)、下载编译完的SDK包并解压至本地
5)、拷贝SDK包libs目录下的所有jar、so库、.a库,资源文件覆盖到你app项目中的对应目录下。注意,是所有的,不允许遗漏任何一个
6)、写你的代码...
7)、你熟悉的Android & IOS开发工具编译应用安装包
8)、发布/安装应用包到任意设备上

二、云修复服务
9)、登录控制台,切换到(1)中新建的app,切换到“云修复”界面
10)、发布修复包,发布时选择“原生应用”。注意版本号:Android平台为第(6)步中你为你的app设置的versionCode,IOS平台为版本号
11)、再次启动app,就会收到修复提示,静默修复不会有提示

三、SuperWebviewSDK更新
12)、登录控制台,切换到(1)中新建的app
13)、重复(2)-》(3)-》(4)-》(5)流程

四、其他

1、修复包的格式:最外层目录为widget,widget目录下的文件,文件夹按照你项目走。最后把widget目录压缩成zip包。
widget包格式介绍http://docs.apicloud.com/APIClou ... ge-structure-manual

2、SuperWebview指南,强烈建议用心仔细阅读一遍:
http://docs.apicloud.com/APIClou ... w-guide-for-android
http://docs.apicloud.com/APIClou ... bview-guide-for-ios

3、SuperWebview文档API,你需要的都在这里:
http://docs.apicloud.com/superwebview/Android/
http://docs.apicloud.com/superwebview/iOS/

4、视频教程:http://www.apicloud.com/video_list

5、如果你的Android项目中用到了armeabi、armeabi-v7a、x86以外的任意so库,建议将其删除,保留armeabi即可,兼容性最强。

6、凡是报libsec.so不能加载,xxxClass not find之类的,请确认是否严格进行了第(5)步操作,如果确定,则参考上一条↑

7、云修复失败的,请确认是否严格进行了第(5)、(10)步操作以及修复包格式

五、关于SuperWebview中使用微信相关模块

      微信相关的SDK比较特殊,要求使用者必须建立名为WXEntryActivity的Activity,用于处理微信回调。并且要求该类的路径必须放置于app项目包名对应的路径下。
     如果您勾选了微信相关的模块,APICloud在动态编译SuperWebview的时候,实际上已经为您编译了一个WXEntryActivity到SDK的jar包中,具体可以解压apiEngine.jar,看到在对应包名目录下,存在一个名为WXEntryActivity;同时在SDK包里的AndroidManifest中也有类似:
<activity android:exported="true" android:name=".wxapi.WXEntryActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>
的配置,这意味着您不必在你的原生app项目中建立自己的WXEntryActivity,只需配置微信相关的appId和key即可。
      因此,Superwebview中如果使用到了微信相关的模块,一个大致的使用流程应该如下:

    1、登录网站控制台
    2、在“模块”界面勾选微信相关的模块
    3、进入“证书”界面,输入包名,该处输入的包名应是你原生app项目的包名,用于保证动态编译到jar中的WXEntryActivity其所在路径在你的原生app项目中是匹配的
    4、证书可以任意填写信息,生成一个,这个会被忽略掉,因为原生项目用的是你自己本地的证书
    5、动态编译,编译完后下载SDK包
    6、将SDK包中的所有jar/so拷贝到你的原生项目对应的目录中,将SDK包中AndroidManifest中类似:<activity android:exported="true" android:name=".wxapi.WXEntryActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"/>的项拷贝到你项目的AndroidManifest中
    7、将你在微信平台申请的相关key配置
    8、配置完成,这样即保证了微信相关模块在SuperWebview中的使用跟APICloud开发时的一致。


ProjectFirst20180530_view版本.zip
评论
1025人参与,40条评论

精彩评论
  • Hzh志浩 驾校小白 1Y币
    发表于 2016-5-8 13:39
    您好,我是初学者,我想创建一个APP,这个SuperWebview能帮到我吗?
  • 常山赵子云 官方版主 7575Y币
    发表于 2016-5-9 15:15
    Hzh志浩 发表于 2016-5-8 13:39
    您好,我是初学者,我想创建一个APP,这个SuperWebview能帮到我吗?

    SuperWebview提供给原生开发使用,使用者需要熟悉Android或者IOS开发,视具体情况而定。
  • 诗兄° 马路杀手 450Y币
    发表于 2016-8-16 16:38
    我现有项目不是superWebView模式,如果要转成superWebView,,是否必须重新建一个superwebview的项目然后动态生成SDK包,还是说直接在现有项目里,动态生成SDK即可
  • 常山赵子云 官方版主 7575Y币
    发表于 2016-8-16 16:53
    诗兄° 发表于 2016-8-16 16:38
    我现有项目不是superWebView模式,如果要转成superWebView,,是否必须重新建一个superwebview的项目然后动 ...

    新建一个项目,动态编译SDK,然后将SDK中的相关库嵌入到你现有的原生app项目中。可以观看SuperWebview相关的教学视频:http://www.apicloud.com/video_list
  • 诗兄° 马路杀手 450Y币
    发表于 2016-8-16 17:02
    常山赵子云 发表于 2016-8-16 16:53
    新建一个项目,动态编译SDK,然后将SDK中的相关库嵌入到你现有的原生app项目中。可以观看SuperWebview相 ...

    谢谢。我现有项目是apicloud的H5项目,不能直接动态编译SDK,而必须建一个新的native项目然后编译?
  • 中研沃兮 驾校小白 43Y币
    发表于 2016-8-18 10:40
    你好,用APICloud进行真机调试时,字体显示是正常的,但使用Superwebview里面,字体就变大了。怎么破呀???????

  • 常山赵子云 官方版主 7575Y币
    发表于 2016-8-18 11:06
    中研沃兮 发表于 2016-8-18 10:40
    你好,用APICloud进行真机调试时,字体显示是正常的,但使用Superwebview里面,字体就变大了。怎么破呀?? ...

    SuperWebview和DeepEngine(您所说的APICloud)的执行是一样的,不会有区分,建议从你的html/css/js代码层面检查是否有处理一样的地方。
  • 中研沃兮 驾校小白 43Y币
    发表于 2016-8-18 13:53
    常山赵子云 发表于 2016-8-18 11:06
    SuperWebview和DeepEngine(您所说的APICloud)的执行是一样的,不会有区分,建议从你的html/css/js代码 ...

    完全是相同的代码,都是基本的js和css,别的什么也没加。而且我又重新创建了一个项目进行测试,一样的结果。崩溃了。。。
  • 常山赵子云 官方版主 7575Y币
    发表于 2016-8-18 15:00
    中研沃兮 发表于 2016-8-18 13:53
    完全是相同的代码,都是基本的js和css,别的什么也没加。而且我又重新创建了一个项目进行测试,一样的结 ...

    AndroidManifest中配置<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="20" />及以上,SuperWebview的SDK中AndroidManifest就有这个配置。
  • liuyang369 驾校小白 21Y币
    发表于 2016-8-27 16:37
    帮看看这个是什么错误
  • 常山赵子云 官方版主 7575Y币
    发表于 2016-8-27 19:59
    liuyang369 发表于 2016-8-27 16:37
    帮看看这个是什么错误

    第721行,非法字符。
  • liuyang369 驾校小白 21Y币
    发表于 2016-8-29 08:50
    常山赵子云 发表于 2016-8-27 19:59
    第721行,非法字符。

    谢谢了,这个提示错误要是不让他出来,,,怎么修改?
  • 常山赵子云 官方版主 7575Y币
    发表于 2016-8-29 10:20
    liuyang369 发表于 2016-8-29 08:50
    谢谢了,这个提示错误要是不让他出来,,,怎么修改?

    config中,debug字段置为false。
  • liuyang369 驾校小白 21Y币
    发表于 2016-8-31 09:44
    常山赵子云 发表于 2016-8-29 10:20
    config中,debug字段置为false。

    正常用key打包出来也是这样写吗,,我用的是android studio,能说详细点吗??谢谢了
  • 常山赵子云 官方版主 7575Y币
    发表于 2016-8-31 11:14
    liuyang369 发表于 2016-8-31 09:44
    正常用key打包出来也是这样写吗,,我用的是android studio,能说详细点吗??谢谢了 ...

    widget包的config.xml文件,跟用什么开发工具没有关系,记事本也能操作。
    关于config的配置介绍,这里有文档:http://docs.apicloud.com/Dev-Guide/app-config-manual
  • liuyang369 驾校小白 21Y币
    发表于 2016-8-31 14:40
    常山赵子云 发表于 2016-8-31 11:14
    widget包的config.xml文件,跟用什么开发工具没有关系,记事本也能操作。
    关于config的配置介绍,这里有 ...

    武神,我的嵌入h5的页面,,在滚动的时候为什么比原生的webView卡,,原生的特别流畅!硬件加速我也加了??麻烦指点一下!!
    <activity
                android:name=".activity.MyWeb"
                android:configChanges="orientation|locale|keyboardHidden|sc             reenLayout|screenSize|smallestScreenSize|keyboard"
                android:screenOrientation="portrait"
                android:theme="@android:style/Theme.Translucent.NoTitleBar"
                android:windowSoftInputMode="adjustResize"
                android:hardwareAccelerated="true"/>
  • null_szy 驾校小白 26Y币
    发表于 2016-10-21 18:27
    本帖最后由 null_szy 于 2016-10-21 18:29 编辑

    你好,官方下载SDK中有一个V4包,可我的项目使用的是V7包,我就没有加入官方给我的V4 然后就报下面的错误了,请问该怎么解决?
    我也试过加入V4包  但是会和V7包冲突

    怕你看不清楚   把错误日志拿上来
    E/AndroidRuntime: FATAL EXCEPTION: main
                      Process: com.example.nullszy.ddweixiao, PID: 26638
                      java.lang.UnsatisfiedLinkError: Native method not found: com.uzmap.pkg.uzcore.external.Enslecb.smLjava/lang/Object;)Z
                          at com.uzmap.pkg.uzcore.external.Enslecb.sm(Native Method)
                          at com.uzmap.pkg.uzcore.external.Enslecb.xsm(Enslecb.java:163)
                          at com.uzmap.pkg.uzcore.external.g.b(NativeWrapper.java:149)
                          at com.uzmap.pkg.uzcore.d.a(InternalDelegate.java:101)
                          at com.uzmap.pkg.openapi.APICloud.<init>(APICloud.java:22)
                          at com.uzmap.pkg.openapi.APICloud.initialize(APICloud.java:34)
                          at com.example.nullszy.ddweixiao.MyApplication.onCreate(MyApplication.java:15)
                          at com.android.tools.fd.runtime.BootstrapApplication.onCreate(BootstrapApplication.java:370)
                          at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1007)
                          at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4564)
                          at android.app.ActivityThread.access$1500(ActivityThread.java:151)
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
                          at android.os.Handler.dispatchMessage(Handler.java:110)
                          at android.os.Looper.loop(Looper.java:193)
                          at android.app.ActivityThread.main(ActivityThread.java:5315)
                          at java.lang.reflect.Method.invokeNative(Native Method)
                          at java.lang.reflect.Method.invoke(Method.java:515)
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
                          at dalvik.system.NativeStart.main(Native Method)
    Application terminated.

  • 常山赵子云 官方版主 7575Y币
    发表于 2016-10-21 21:23
    null_szy 发表于 2016-10-21 18:27
    你好,官方下载SDK中有一个V4包,可我的项目使用的是V7包,我就没有加入官方给我的V4 然后就报下面的错误了 ...

    这个报的是so库没找到,检查下你的项目配置,为啥没把so库编译到apk包里。
  • null_szy 驾校小白 26Y币
    发表于 2016-10-24 12:01
    常山赵子云 发表于 2016-10-21 21:23
    这个报的是so库没找到,检查下你的项目配置,为啥没把so库编译到apk包里。 ...

    没有发现项目配置有问题,所以不知道下一步该怎么解决

查看全部评论>>