我使用以下方法获取应用程序名和packageName,但我需要iPhone用户的捆绑id。我想共享一个应用程序链接。我在Android上做的,但在iPhone上,我需要bundle id。
Future<Null> _initPackageInfo() async {
final PackageInfo info = await PackageInfo.fromPlatform();
setState(() {
_packageInfo = info;
packageName = info.packageName;
appName = info.appName;
buildNumber = info.buildNumber;
});
}
您可以使用get_版本包在iOS和Android上获取应用程序ID、版本名称和版本代码。
将此依赖项添加到你的应用程序,并按如下方式获取应用程序id
String projectAppID;
// Platform messages may fail, so we use a try/catch PlatformException.
try {
projectAppID = await GetVersion.appID;
} on PlatformException {
projectAppID = 'Failed to get app ID.';
}
完整示例
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get_version/get_version.dart';
void main() => runApp(new MyApp());
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => new _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
String _projectVersion = '';
String _projectCode = '';
String _projectAppID = '';
String _projectName = '';
@override
initState() {
super.initState();
initPlatformState();
}
// Platform messages are asynchronous, so we initialize in an async method.
initPlatformState() async {
String platformVersion;
// Platform messages may fail, so we use a try/catch PlatformException.
try {
platformVersion = await GetVersion.platformVersion;
} on PlatformException {
platformVersion = 'Failed to get platform version.';
}
String projectVersion;
// Platform messages may fail, so we use a try/catch PlatformException.
try {
projectVersion = await GetVersion.projectVersion;
} on PlatformException {
projectVersion = 'Failed to get project version.';
}
String projectCode;
// Platform messages may fail, so we use a try/catch PlatformException.
try {
projectCode = await GetVersion.projectCode;
} on PlatformException {
projectCode = 'Failed to get build number.';
}
String projectAppID;
// Platform messages may fail, so we use a try/catch PlatformException.
try {
projectAppID = await GetVersion.appID;
} on PlatformException {
projectAppID = 'Failed to get app ID.';
}
String projectName;
// Platform messages may fail, so we use a try/catch PlatformException.
try {
projectName = await GetVersion.appName;
} on PlatformException {
projectName = 'Failed to get app name.';
}
// If the widget was removed from the tree while the asynchronous platform
// message was in flight, we want to discard the reply rather than calling
// setState to update our non-existent appearance.
if (!mounted) return;
setState(() {
_platformVersion = platformVersion;
_projectVersion = projectVersion;
_projectCode = projectCode;
_projectAppID = projectAppID;
_projectName = projectName;
});
}
@override
Widget build(BuildContext context) {
return new MaterialApp(
home: new Scaffold(
appBar: new AppBar(
title: new Text('Plugin example app'),
),
body: new SingleChildScrollView(
child: new ListBody(
children: <Widget>[
new Container(
height: 10.0,
),
new ListTile(
leading: new Icon(Icons.info),
title: const Text('Name'),
subtitle: new Text(_projectName),
),
new Container(
height: 10.0,
),
new ListTile(
leading: new Icon(Icons.info),
title: const Text('Running on'),
subtitle: new Text(_platformVersion),
),
new Divider(
height: 20.0,
),
new ListTile(
leading: new Icon(Icons.info),
title: const Text('Version Name'),
subtitle: new Text(_projectVersion),
),
new Divider(
height: 20.0,
),
new ListTile(
leading: new Icon(Icons.info),
title: const Text('Version Code'),
subtitle: new Text(_projectCode),
),
new Divider(
height: 20.0,
),
new ListTile(
leading: new Icon(Icons.info),
title: const Text('App ID'),
subtitle: new Text(_projectAppID),
),
],
),
),
),
);
}
}
在Flutter项目的iOS部分产品捆绑标识符位于路径中的project.pbxproj
文件中:
\ios\Runner.xcodeproj\project.pbxproj
具体规定如下:
PRODUCT_BUNDLE_IDENTIFIER = com.app.flutter.example;
请注意,该值与颤振项目中的Android软件包名称相同。
要手动查找项目名称,可以查看AndroidManifest。xml或in-Info。普利斯特。
在Android中,包名位于AndroidManifest中:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...
package="com.example.appname">
在iOS中,包名称是Info中的包标识符。plist:
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
在Runner.xcodeproj/project.pbxproj中找到:
PRODUCT_BUNDLE_IDENTIFIER = com.example.appname;
问题内容: 我有以下代码: 如何编写第5行以及目标意图中的getExtra 问题答案: 你需要有实现的界面,你将需要实现的和合适的构造函数,一个作为参数。请参阅接口文档。 要将列表放入中,请使用: 要使列表脱离目标活动,请使用:
目前我正在学习i18n,发现 影响资源的查找过程。该示例摘自Java™教程-快速示例稍作修改: 组织。i18n。I18N示例 已定义的默认资源消息绑定。性质 和3个附加资源文件 MessagesBundle_de_de.properties MessagesBundle_en_US属性 MessagesBundle_fr_FR属性 到目前为止,一切都很好。给出: 给出: 现在,我添加以下资源文件M
您上载了一个APK或Android应用程序捆绑包,该捆绑包具有活动、活动别名、服务或广播接收器(带有意图过滤器),但没有“Android:exported”属性集。无法在Android 12或更高版本上安装此文件。见:开发者。Androidcom/about/versions/12/behavior-changes-12#导出 在play store console中上载捆绑包时在play sto
我能够成功地从服务器获取JSON数据,但无法解码数据并配置到所需的列表。我该怎么做? 这是我用来获取字段数据的代码 json['content']是一个映射 下面是我正在使用的JSON数据结构 上面的JSON数据结构在每个项目细节中都嵌套了order no,它必须在所有订单号中提取,然后是订单的相应数据。
我有一个包含多个按钮的活动,当单击一个按钮时,将打开一个包含两个片段的新活动。 我试图根据按下的按钮在其中一个片段中显示一个回收器视图。问题是捆绑包为空,所以回收器视图不显示。 捆绑包在<code>onAttach 碎片 公共类MyFragment扩展片段{
问题内容: 我做了一个Java应用程序。并将所有类捆绑在jar文件中。.我从netbeans运行项目,我的应用程序运行成功..但是我将我的.jar文件放在另一个地方,然后从那里运行..我没有我的应用程序使用的图标..在代码中,我从项目文件夹中存在的images目录中获取我的图标。 现在,我想知道如何将这些图像文件呈现给最终用户(就像我们呈现.jar文件一样)。 问题答案: 似乎这里有两个问题: 在