由于想让app打开一个url登录后获取cookie调用接口,使用plus.navigator.getCookie获取cookie为空,只能想办法使用android原生组件了。
参考:Android uni-app原生插件开发文档
一.下载SDK
1.解压
2.使用Android Studio导入UniPlugin-Hello-AS项目
项目包括
- app模块(主要用于测试插件)
- uniplugin_richalert模块(自带插件的示例)
二.创建自己的插件
- 使用Android Studio选择File->New->New Module->Android Library创建模块
- 修改build.gradle可参照uniplugin_richalert模块复制
- 打开Open Module Settings修改Compile Sdk Version为28,个人使用29编译报错
- 创建WXSDKEngine.DestroyableModule派生类编写交互代码,可打开新Activity使用WebView组件监听cookie
- 使用WXSDKEngine.DestroyableModule.mWXSDKInstance.fireModuleEvent触发监听
三.运行
- 打开app模块
- 在build.gradle下追加implementation project(’:插件名’)
- 修改assets/dcloud_uniplugins.json文件,参照uniplugin_richalert配置
- 将assets/apps/下文件删除,替换为自己的uniapp编译文件
- 修改assets/data/dcloud_control.xml修改为自己的appid
模块部分代码
public class MBrowserModule extends WXSDKEngine.DestroyableModule{
public static BrowserActivity browserActivity;
@JSMethod(uiThread = true)
public void open(JSONObject options, JSCallback jsCallback){
String url = options.getString("url");
Object initCookieObj = options.get("initCookie");