京东联盟flutter插件使用方法

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

本人发布的京东联盟flutter插件地址:https://pub.dev/packages/jdkit

github地址:https://github.com/baiyuliang/jdkit

在这里插入图片描述

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

2.安卓端插件配置:

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

在这里插入图片描述

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

在这里插入图片描述

3)修改jdsdk中的AndroidMainfest.xml:

  <activity
      android: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提供的其它接口:

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白玉梁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值