当前位置: 首页 > news >正文

京东联盟flutter插件使用方法

目录

  • 1.京东联盟官网注册申请步骤略~
  • 2.安卓端插件配置:
  • 3.IOS端插件配置
  • 4.其它配置
  • 5.京东OAuth授权

文档地址:https://baiyuliang.blog.csdn.net/article/details/134444104

京东联盟flutter插件地址:https://pub.dev/packages/jdkit

在这里插入图片描述

1.京东联盟官网注册申请步骤略~

2.安卓端插件配置:

1)将申请的安全图片,safe.jpg放在flutter项目,android主工程res/raw下:

在这里插入图片描述

2)从github上,将jdsdk文件夹下载下来,并放入anrdoid主工程下:

在这里插入图片描述

3)修改jdsdk中的AndroidMainfest.xml:

  <activityandroid:name="com.kepler.jd.sdk.KeplerBackActivity"android:exported="true"android:theme="@android:style/Theme.Translucent"><intent-filter><action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.DEFAULT" /><data android:scheme="sdkback49d5d16d4f8ba1411c2c1533c2308a47" /></intent-filter></activity>

将scheme:sdkback后的key修改为自己的!

4)android主工程 settings.gradle中添加:include ':jdsdk'

3.IOS端插件配置

1)将申请的安全图片safe.jpg,放入IOS主工程Runner/bundle文件夹下:

在这里插入图片描述

4.其它配置

其它配置,请按京东联盟官方文档进行配置!

5.京东OAuth授权

  • 1)将你在京东联盟后台申请的app提交审核,待审核通过;
  • 2)添加安卓端主工程Mainactivity的scheme:自定义,并将launchMode修改为 singleTask;
  • 3)添加IOS主工程URL type(url schecme:自定义);
  • 4)flutter pubspec.yaml引入三个插件:appscheme: ^1.0.8,webview_flutter: ^4.4.1,url_launcher: ^6.1.12;
  • 5)在需要调用京东授权的页面引入如下代码(Webview,打开授权url及拦截京东Scheme):
late WebViewController webViewController;
webViewController = WebViewController()..setJavaScriptMode(JavaScriptMode.unrestricted)..setNavigationDelegate(NavigationDelegate(onProgress: (int progress) {},onPageStarted: (String url) {},onPageFinished: (String url) {},onWebResourceError: (WebResourceError error) {},onNavigationRequest: (NavigationRequest request) {if (request.url.startsWith('openapp.jdmobile')) {launchUrlString(request.url);return NavigationDecision.prevent;}return NavigationDecision.navigate;},),);

由于我们不需要展示webview的跳转过程,所以可将webview宽高设为0:

SizedBox(width: 0, height: 0, child: WebViewWidget(controller: webViewController))
  • 6)打开京东授权url(key替换为自己的):
webViewController.loadRequest(Uri.parse("https://open-oauth.jd.com/oauth2/to_login?app_key=xxx&response_type=code&redirect_uri=xindongriji://xdrj?event=jdsq&state=20180416&scope=snsapi_alliance_app_base"));
  • 7)在flutter的main中接收京东的回调:
AppScheme? appScheme = AppSchemeImpl.getInstance();
appScheme?.getInitScheme().then((value) {if (value != null) {setState(() {result = "${value.dataString}";});}
});
appScheme?.registerSchemeListener().listen((event) {if (event != null) {setState(() {result = "${event.dataString}";});}
});

回调的str格式:你的scheme://xdrj?event=jdsq&state=自定义内容原封不动返回&code=xxx,你拿到code后即可请求jd提供的其它接口:

在这里插入图片描述

在这里插入图片描述

http://www.lryc.cn/news/236793.html

相关文章:

  • python电影数据可视化分析系统的设计与实现【附源码】
  • SQLMAP --TAMPER的编写
  • 美国服务器:全面剖析其主要优点与潜在缺点
  • 验证二叉搜索树
  • Ubuntu 18.04无网络连接的n种可能办法
  • MIUI查看当前手机电池容量
  • 链动2+1模式:创新营销引领白酒产业新潮流
  • openGauss学习笔记-126 openGauss 数据库管理-设置账本数据库-归档账本数据库
  • UE 视差材质 学习笔记
  • openfeign整合sentinel出现异常
  • Java的继承
  • 十二、Docker的简介
  • 卷积神经网络(CNN)多种图片分类的实现
  • 【备忘录】Docker容器、镜像删除与资源清理命令
  • 使用 Splashtop 的开放 API 简化 IT 工作流程
  • 使用requests库进行网络爬虫:IP请求错误的解决方法
  • Web之CSS笔记
  • CentOS to KeyarchOS 系统迁移体验
  • 如何从零开始制作一本企业宣传画册?
  • Android问题笔记四十六:解决open failed: EACCES (Permission denied) 问题
  • Universal adversarial perturbations(2017 CVPR)
  • 前台查看日志功能
  • mysqlbinlog使用记录
  • 学习c#的第十八天
  • element + vue3,级联选择器实现省市区
  • 程序员的护城河-并发编程
  • 外卖小程序系统:数字化餐饮的编码之道
  • 单链表相关面试题--1.删除链表中等于给定值 val 的所有节点
  • 一生一芯18——Chisel模板与Chisel工程构建
  • ES6 class类